Java 中Final 區塊中流控制的爭議實踐
人們普遍認為,其中包含return 語句或其他形式的流控制Java 中的finally 區塊是一種可疑的做法。然而,儘管有這種普遍共識,某些情況下可能需要使用它。
一個令人信服的例子來自於在更深層次的程式碼中發生異常但必須向上傳播的情況。考慮以下程式碼片段:
Object problemMethod() { Object rtn = null; try { rtn = somethingThatThrewAnException(); } finally { doSomeCleanup(); return rtn; } }
在本例中,將重新拋出 SomethingThatThrewAnException 方法中發生的未捕獲異常。然而,finally 區塊中的 return 語句會過早中止異常傳播過程,從而阻止其到達問題方法的呼叫者。
這種情況凸顯了過早終止異常傳播的潛在危險。雖然技術上允許在finally區塊中使用串流控制,但為了程式碼的可讀性和可維護性,應該避免這樣做。應始終適當地處理和傳播異常,為此目的而依賴finally區塊可能會導致意外且複雜的行為。
以上是應該在 Java 的 Final 區塊中使用流控制嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!