我在期待缓冲的阅读器和文件阅读器关闭,并在抛出异常时释放资源。我是否正确使用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/) –