La *_*bla 9 java try-catch-finally
在finally子句中编写try和catch是否被认为是错误的编程?
我在我的main方法中有一个我要关闭的fileInputStream.我想将.close()放在finally中,所以它无论如何都会关闭.我不想在main方法中添加throws声明,因为它是主要方法:P
}finally{
try {
commandFile.close();
} catch (IOException e) {
throwException(e);
}
}
Run Code Online (Sandbox Code Playgroud)
好吗?谢谢
不幸的是,在最终方法中需要try/catches的模式是Java 6及之前的重复模式.我认为它实际上是一种不好的做法,但在Java 6中你不能真正避免这种做法(见下面的Java 7).
一个附加问题是finally块中抛出的任何新异常都将覆盖在到达此块之前抛出的异常.
在Java 7中,特别针对需要关闭资源的情况(try/finally/try/catch构造的大多数用例)新的try-with-resources构造.这也将捕获主要和次要异常.
因此,使用此构造是JDK 7中的最佳实践,是的,因此,您显示的代码在Java 7中是一种不好的做法.
| 归档时间: |
|
| 查看次数: |
3139 次 |
| 最近记录: |