对于以某种其他方式关闭资源而反对的资源,是否存在任何陷阱?或者尝试使用资源尝试实现尝试的第一种方式?
答案 0 :(得分:2)
InputStream stream = new MyInputStream(...);
try {
// ... use stream
} catch(IOException e) {
// handle exception
} finally {
try {
if(stream != null) {
stream.close();
}
} catch(IOException e) {
// handle yet another possible exception
}
}
您是否看到嵌套式try-catch需要在finally
块中实现。
为了避免这种繁琐的工作,我们可以尝试使用资源。
try (InputStream stream = new MyInputStream(...)){
// ... use stream
} catch(IOException e) {
// handle exception
}
更具体地回答您的问题,是,尝试使用资源是最有效和最简单的方法,并且正在考虑按行业标准广泛使用。
注意:该代码仅用于描述支持我的答案的情况。