簡體   English   中英

是否可以在Java中創建我自己的未經檢查的Exception?

[英]Is it possible to create my own unchecked Exception in Java?

是否可以在Java中創建自己的未經檢查的異常?

基本上,我想

  • 有我自己的異常類, MyUncheckedException
  • 這並不能讓我更新調用拋出此異常的方法的所有方法,並拋出大量的throws

是。 RuntimeException擴展MyUncheckedException 但是,以下是文檔准則

一般來說,不要拋出RuntimeException或創建RuntimeException的子類,因為您不希望因為指定方法可以拋出的異常而煩惱。

這是底線指南:如果可以合理地期望客戶端從異常中恢復,則將其作為已檢查的異常。 如果客戶端無法執行任何操作以從異常中恢復,請將其設置為未經檢查的異常。

是 - 從RuntimeException派生它

確保您出於正確的原因執行此操作:通常,運行時異常表示編程錯誤 ,而不是程序可能以某種有意義的方式做出反應的錯誤。

我想你只是想要繼承RuntimeException?

是。 根據Effective Java -

雖然Java語言規范不要求它,但是有一個強烈的約定,即保留錯誤以供JVM使用以指示資源缺陷,不變故障或其他使得無法繼續執行的條件。 鑒於幾乎普遍接受這種約定,最好不要實現任何新的Error子類。 因此,您實現的所有未經檢查的throwable應該是RuntimeException的子類(直接或間接)。

建議使用以下未經檢查的異常: -

  1. 使用運行時異常來指示編程錯誤。
  2. 如果您認為某個條件可能允許恢復,請使用已檢查的異常; 如果不是,請使用運行時異常。 如果不清楚是否可以進行恢復,那么使用未經檢查的異常可能會更好。

關於記錄未經檢查的異常 -

使用Javadoc @throws標記來記錄方法可以拋出的每個未經檢查的異常,但不要使用throws關鍵字在方法聲明中包含未經檢查的異常。

我會在這里留一個例子,以防萬一:

public class MyCustomException extends RuntimeException {

    public MyCustomException(String message) {
        super(message);
    }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM