2013-12-21 253 views
2

我對Java的拋出異常的問題,在類方法的定義:在類方法的Java拋出異常

public void someMethod() throws SomeException { 
try{ 
    ... 
}catch (SomeException e){ 
    .... 
} 
} 

當我們宣佈throw SomeException在方法聲明,我們還是要try/catch在身,或可我們只需使用throw new SomeException這樣的:

public void someMethod() throws SomeException { 
    // do something 
    throw new SomeException() ; 
} 

什麼是拋出異常,當我們在方法聲明具有throw Exception正確方式。

+0

你可以通過編寫代碼並編譯來測試它。順便想一想,在方法簽名中聲明throws子句意味着什麼? –

回答

5

不,你不需要捕捉拋出的異常,只要你沒有改變它,或者只是在發生異常時有選擇地拋出異常。因此,這往往是完美的罰款:

public void someMethod() throws SomeException { 
    // do something 
    throw new SomeException() ; 
} 

雖然它往往好給你SomeException類的構造函數,需要一個字符串參數,然後將字符串傳遞給超級構造,讓您的例外能夠通過更多信息通過。

1

您的原型public void someMethod() throws SomeException要求someMethod只會拋出類型爲SomeException的異常。 (或從SomeException派生的任何異常類)。

因此,您不需要在函數中捕獲特定的異常,但需要捕獲所有其他異常。