JavaRush /Java Blog /Random-TW /喝咖啡休息#158。Java 中處理異常的 10 個技巧

喝咖啡休息#158。Java 中處理異常的 10 個技巧

在 Random-TW 群組發布
來源:Medium 這篇文章將幫助您更了解如何在 Java 中有效地處理異常。 喝咖啡休息#158。 Java 中處理異常的 10 個技巧 - 1處理 Java 異常可能具有挑戰性。確定要處理哪些 Java 異常、要重新拋出哪些異常以及要忽略哪些異常可能很困難。但是,有許多有用的指南可以有效地幫助您處理異常並建立新的應用程式。讓我們來認識一下他們吧。
  1. 小心你記錄的內容。
  2. 不要忽略拋出的異常。
  3. 使用全域異常處理程序。
  4. 不要手動關閉資源。
  5. 儘早拋出並稍後處理異常。
  6. Java 異常不應被記錄並重新引發。
  7. 檢查抑制的異常。
  8. 在 throw 語句中,準確地聲明異常。
  9. 首先處理最明顯的異常。
  10. 使用現代異常處理語意。

1. 小心你記錄的內容

軟體開發人員應始終了解客戶的安全和隱私權。
  • Java 程式可以將資料移至其他系統,大量的開發人員和管理員可以使用它(包括修復錯誤)。
  • 如果日誌檔案中記錄了任何敏感數據,您的公司將不符合安全要求,您可能會失去工作。

2. 不要忽略拋出的異常

不要捕獲異常然後忽略它。在 Java 中隱藏異常並不是處理異常的好方法。至少寫下異常的名稱和關聯的訊息。這樣,就可以在您的條目中找到有關該問題的資訊。由於隱藏異常而調試 Java 應用程式非常困難。

3.使用全域異常處理程序

在程式執行期間​​,總是會出現一些程式碼中先前未捕獲的異常。因此,始終添加一個全域異常處理程序來處理未捕獲的異常。這不僅允許記錄和處理異常,而且還可以防止在運行時拋出異常時應用程式崩潰。

4.不要手動關閉資源

處理 Java 異常時的另一個重要建議是允許 JVM對正在關閉的資源呼叫close()方法。不要嘗試自己關閉它們。這可以透過初始化try-resources模組內的資源來輕鬆實現。語意:
public class TryWithResourcesExample {

public static void main(String[] args) throws Exception {

try (Door door = new Door()) {

door.swing();

} catch (Exception e) { ..... }

} finally { .....}

}

}
正如您所看到的,在 try...catch 區塊完成後,JVM 會為您關閉資源,從而消除了複雜且難以修復的資源洩漏的可能性。

5. 儘早拋出並稍後處理異常

每當程式碼中出現異常狀況時,就會引發異常。不要等待任何程式碼行執行後再退出您所在的方法。捕獲異常時,函數必須放在方法的末尾。這減少了方法中的catch區塊的數量,使程式碼更易於閱讀和維護。

6. Java異常不應該被記錄和重新拋出

如果發生異常,請執行下列其中一項操作:
  • 在記錄異常的同時繼續使用您的程式。
  • 再次引發異常並允許採用不同的方式記錄資料。
不要將兩個階段結合起來。切勿記錄並重新拋出相同的異常,如下例所示:
try {

Class.forName("com.min.Example");

} catch (ClassNotFoundException ex) {

log.warning("Class was not found.");

throw ex;

}
這會導致程式碼重複和日誌檔案被重複條目堵塞,從而使診斷代碼變得更加困難。

7. 檢查被抑制的異常

抑制異常是一項新的語言功能,並非所有開發人員都了解。透過使用資源實作經過驗證的方法,可以同時拋出兩個例外。透過查詢是否有受抑制的異常,可以輕鬆檢查此情況。確定是否發生此情況的唯一方法是查看目標異常是否也包含受抑制的異常。

8. 使用 throw 語句時,指定具體的異常

透過在方法體內使用 throw 語句,粗心的開發人員可能會使用通用異常類別。但這並不是Java中處理異常的最佳方式。相反,請始終指定該方法可能拋出的確切異常。它可以幫助其他開發人員了解當某種方法未按預期工作時可以使用的不同錯誤處理技術。

9. 先處理最明顯的異常

這更多的是編譯器的要求,而不是 Java 異常處理實作的技巧,但開發人員應該始終先處理最明顯的異常,最後處理最不確定的異常。如果不遵循此規則,JVM 將返回編譯時錯誤,並帶有非常神秘且難以理解的錯誤訊息。透過始終處理程式碼中的某些異常,讓軟體開發人員的生活變得更輕鬆。

10.使用現代異常處理語意

Java 提供了許多錯誤和異常處理功能,可以簡化開發並顯著減少 Java 程式碼量。使用在單一catch區塊中處理多個異常的功能,並使用try區塊自動關閉資源。使用運行時異常,這樣其他開發人員就不必處理您拋出的異常。
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION