ฉันคาดหวังว่าโปรแกรมอ่านบัฟเฟอร์และโปรแกรมอ่านไฟล์จะปิดและทรัพยากรที่ปล่อยออกมาหากมีการโยนข้อยกเว้น
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;
}