如果抛出异常,我期望缓冲的读取器和文件读取器关闭并释放资源。
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;
}
https://stackoverflow.com/questions/17650970
复制相似问题