我正在學習SCJP 6學習指南Exam_310-065 異常宣言和公共接口並在第5章,它說「未處理的檢查異常的拋出異常」在Java中
「每方法必須通過提供catch子句來處理所有檢查的異常,或者列出每個未處理的檢查異常作爲拋出的異常。「
我們如何列出每個未處理的檢查異常作爲拋出的異常,以及它在代碼中的外觀如何?謝謝。
我正在學習SCJP 6學習指南Exam_310-065 異常宣言和公共接口並在第5章,它說「未處理的檢查異常的拋出異常」在Java中
「每方法必須通過提供catch子句來處理所有檢查的異常,或者列出每個未處理的檢查異常作爲拋出的異常。「
我們如何列出每個未處理的檢查異常作爲拋出的異常,以及它在代碼中的外觀如何?謝謝。
它看起來像這樣:
public void foo() throws SomeCheckedException, AnotherCheckedException
{
// This method would declare it in *its* throws clause
methodWhichThrowsSomeCheckedException();
if (someCondition)
{
// This time we're throwing the exception directly
throw new AnotherCheckedException();
}
}
更多信息請參見section 8.4.6 in the JLS。
舉例來說,如果您有:
public void doSomething() throws SomeException {
...
throw new SomeException();
}
你想調用doSomething
,你必須要麼catch
異常,或將其作爲也容易引發SomeException
的申報方法,因而傳播它在調用堆棧進一步:
public void doSomethingElse() throws SomeException {
doSomething();
}
或者
public void doSomethingElse() {
try {
doSomething();
}
catch (SomeException) {
// Error handling
}
}
考慮到RuntimeException
s未檢查異常,所以它們是此規則的一個例外。
太棒了!謝謝先生們的解釋。 –
謝謝喬恩的示例代碼和信息。 –