2013-08-31 42 views
0

假設下面的代碼:拋出語句處理的異常 - Java的

public static void somMethod() throws IOException { 

try { 
    // some code that can throw an IOException and no other checked exceptions 
} catch (IOException e) { 
     // some stuff here -- no exception thrown in this block 
} 

} 

的someMethod拋出IOException異常,並沒有其他的檢查異常, 並處理該異常本身。

在其聲明中究竟

throws IOException 

什麼帶來的? 從我所知道的情況來看,它使得它可以使用調用someMethod()句柄來處理IOException本身。

這裏發生了什麼?

+1

如果'catch'模塊重新拋出異常,'拋出IOException'對於調用該方法的任何代碼都是必需的。 –

+0

不,捕獲統計。清楚了。 – Roam

+0

..但thx爲重點。 – Roam

回答

2

如果catch塊沒有拋出IOException,則方法簽名中的throws IOException部分不是必需的。而且,每次調用someMethod()時,都必須提供catch塊,以便可能的異常實際上從不發生。