避免使用異常進行一般流量控制:
異常只能用於意外情況,而不是用來控製程式的流程。
有問題的程式碼範例:在超出陣列的限制時嘗試使用異常來結束循環。
try { int i = 0; while (true) { System.out.println(array[i++]); } } catch (ArrayIndexOutOfBoundsException e) { // Este código encerra o loop quando o índice ultrapassa o tamanho do array }
問題:這種異常的使用效率低且令人困惑。最好使用合適的循環結構。
for (int i = 0; i < array.length; i++) { System.out.println(array[i]); }
API 設計意義:
設計良好的 API 應避免在正常流程中強制使用異常。
範例:Iterator介面提供了hasNext()方法來檢查是否有更多元素,避免呼叫next()時出現不必要的異常。
Iterator<String> iterator = list.iterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); }
狀態相關方法的替代方案:
當無法滿足預期狀態時,提供單獨的方法來測試狀態(hasNext)或特殊的回傳值,例如 null 或Optional。
以上是項目僅在特殊情況下使用例外的詳細內容。更多資訊請關注PHP中文網其他相關文章!