簡體   English   中英

我應該聲明一個未經檢查的例外嗎?

[英]Should I declare an unchecked exception?

我有一個方法調用另一個方法,如下所示:

public void m1() {
    m2(10);
}

public void m2(int v) {
    if(v < 10)
        throw new MyException();
}

public class MyException extends RuntimeException{ }

現在,我想通知將要使用m1()客戶端,它可能會拋出MyException 如果我這樣宣布它是否可以:

public void m1() throws MyException{
    m2(10);
}

我不確定它,因為我曾經使用帶有檢查異常的throws聲明。 與未經檢查的人一起這樣做是否常見?

可以這樣做 - 我相信它會出現在Javadoc中。 但它不會強制任何調用者處理異常,因此您仍然基本上依賴於用戶(開發人員調用您的代碼)足夠勤奮來檢查文檔。 如果這對您來說已經足夠了,那就去吧 - 否則,將MyException更改為已檢查的異常。

至於是否通常會聲明可能被拋出的未經檢查的異常 - 我會說我經常看到它並不是特別令人驚訝,但它並不是一種廣泛使用的做法。

您可以在throws子句中聲明一個未經檢查的異常,但是,正如您所指出的,除了表示該方法可能會拋出它之外,它不會產生任何實際影響。 這樣做肯定並不罕見,JDK似乎采用了這種方法(參見,例如, Integer#parseInt )。

無論你是否在throws子句中聲明它,你都應該在方法的javadoc中記錄它,這是使用你的方法的人可能會看到的第一個地方。

暫無
暫無

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

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