看着一個問題,我有錯上期中測試,這我想知道:try/catch/finally中發生了什麼?
public double[] readInputFile(String fielane) throws IOException
{
File inputFile = new File(filename);
Scanner in = new Scanner(inputFile);
try
{
readData(in);
return data;
}
finally
{
inputFile.close();
}
}
這是否會通過所有異常備份鏈,還是會只通過檢查IOException異常?
所以我想這個方法會「將任何類型的異常傳回給調用者。」?這是可選的多項選擇答案之一。另一個(關閉)是「此方法將任何IOException類型錯誤傳回給調用者。」 – agent154
任何異常。這包括'IOException'(如'throws'子句中所述),以及可能發生的'RuntimeException'的任何實例('RuntimeException'是未經檢查的異常,例如'NullPointerException')。但是'finally'塊將會執行。 – Isaac
如果'finally'塊拋出另一個'Exception' [> example](http://ideone.com/tzMCUG),原始'Exception'可以被覆蓋。 – zapl