【发布时间】:2011-02-25 21:29:15
【问题描述】:
在java中处理文件读写的标准方式是这样的:
try
{
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("file.dat"));
oos.writeObject(h);
oos.close();
}
catch (FileNotFoundException ex)
{
}
catch (IOException ex)
{
}
但是我被那个代码困扰,因为如果抛出异常,文件可能永远不会关闭。当然,我们可以添加一个 finally 子句并在 try 块之外初始化 ObjectOutputStream。但是,当您这样做时,您需要再次在 finally 块内添加另一个 try/catch 块......这很丑陋。有没有更好的方法来处理这个问题?
【问题讨论】:
-
添加另一个 try/catch 块有助于在发生异常时隔离问题
-
@Alpine 它对你的帮助比堆栈跟踪 *shrug* 提供的信息更多
-
@Nathan Hughes:我的表述不好,我意识到了危险,但感谢您指出这一点。
标签: java file-io exception-handling