回答
這取決於具體情況。我會盡力解釋。
考慮一個簡單的例子:
try {
myVar.myFunc();
}
catch(NullPointerException e) {
//bla bla
}
OR
if (myVar != null)
myVar.myFunc();
如果myVar
可以null
爲你的代碼流的一部分,那麼你可以使用if
語句,否則你應該使用例外,因爲它可能是由於不受你控制的事情。
這非常有用,謝謝! – Sajad
那麼,從我的理解你的意思與if/else語句的函數的返回值將成功或失敗,所有實際工作將在函數的參數完成。
這是C風格編碼 - 沒有例外。
在java中,因爲你不能通過引用(或指針)傳遞元素,所以這種方法是有問題的(你將不得不爲一個返回int
,非常不優雅的方法創建一個包裝器),甚至在C中 - 它更多一個必需品然後是優雅的東西。
示例 - 一個C風格的代碼可以做:
int calcSomething(int arg1, int arg2, int* result) {
//calcualtions
if (...) return FAILURE;
*result = ...
return SUCCESS;
}
和編碼環境將是:
if (calcSomething(...) == FAILURE) { handleError(); }
注 - 的做法並沒有完全用Java diasppear,例如Collection#add()
返回boolean
表示操作是否成功。它主要用於操作,其中false
的值並非真正的錯誤 - 更多表明無所事事。
每當「錯誤」被阻止時 - 使用異常進行錯誤處理 - 它們更具可讀性並且可以更好地維護代碼。如果它只是一個指示(對於eaxmple - 元素已經在集合中) - 返回值中的布爾值可以很好。
這是如此有用,謝謝! – Sajad
- 1. Java異常處理finally塊
- 2. 如何處理異常,如果最後如下try塊
- 3. 異常處理(或記錄)
- 4. 如何處理「finally」塊中的異常?
- 5. 如何處理catch塊中的異常?
- 6. 異常處理:多次處理異常
- 7. 如何處理或避免BlockedIndefinitelyOnSTM異常?
- 8. Ruby異常 - 如果語句救援不處理異常
- 9. 異常處理:如果條件與異常
- 10. php異常處理異常
- 11. 處理catch塊中的異常?
- 12. 異常處理應用程序塊
- 13. try/catch塊中未處理的異常
- 14. Oracle嵌套塊和異常處理
- 15. 開始和救援塊異常處理
- 16. 棱鏡模塊級別異常處理
- 17. 異常處理與多個catch塊
- 18. 異常處理Try-Catch塊區別
- 19. ELMAH與企業庫異常處理塊
- 20. 異常處理沒有嘗試塊
- 21. 德爾福與多個異常處理塊的異常處理問題
- 22. 異常處理
- 23. 異常處理
- 24. 異常處理
- 25. 異常處理
- 26. 處理異常
- 27. 異常處理
- 28. 處理異常
- 29. 異常處理
- 30. 處理異常
這是一個錯誤,編輯 – Sajad
可能是@APoliteBoy的意思是所有的異常可以使用'If'語句來處理? – TheWhiteRabbit
你能否提供一個由'try catch'和'if'語句處理的例外情況? –