[英]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.