Tôi đang mong đợi trình đọc bộ đệm và trình đọc tệp sẽ đóng và tài nguyên được giải phóng nếu trường hợp ngoại lệ được ném ra.
public static Object[] fromFile(String filePath) throws FileNotFoundException, IOException
{
try (BufferedReader br = new BufferedReader(new FileReader(filePath)))
{
return read(br);
}
}
Tuy nhiên, có bắt buộc phải có catch
điều khoản để đóng thành công không?
BIÊN TẬP:
Về cơ bản, đoạn mã trên trong Java 7 tương đương với đoạn mã dưới đây cho 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;
}