我在期待緩衝的閱讀器和文件閱讀器關閉,並在拋出異常時釋放資源。我是否正確使用Java 7試用資源
public static Object[] fromFile(String filePath) throws FileNotFoundException, IOException
{
try (BufferedReader br = new BufferedReader(new FileReader(filePath)))
{
return read(br);
}
}
但是,是否有要求成功關閉的catch
子句?
編輯:
實質上,是在Java 7的上面的代碼等同於下面的Java 6:
public static Object[] fromFile(String filePath) throws FileNotFoundException, IOException
{
BufferedReader br = null;
try
{
br = new BufferedReader(new FileReader(filePath));
return read(br);
}
catch (Exception ex)
{
throw ex;
}
finally
{
try
{
if (br != null) br.close();
}
catch(Exception ex)
{
}
}
return null;
}
再次閱讀您的問題後,我不確定我是否理解得很好。你能解釋一下嗎? – Maroun
嗨。獵豹,我試圖理解你的Java 6第一個catch的作用。 catch(Exception ex){throw ex; }' - 它只是重新拋出異常,它什麼都不做,它可以輕鬆移除而不會受到任何傷害。或者我錯過了什麼? – Sasha
你的語法沒有錯。如果你想了解更多關於試用資源的知識,請查看這篇文章:[Java試用資源](http://programmergate.com/java-try-resources/) –