【发布时间】:2012-01-20 09:33:51
【问题描述】:
在下面的代码中,outPutStream 的关闭函数会抛出一个我应该捕获的 IOException 异常。我的问题是我需要处理它吗?由于我正在使用移动设备,并且我想确保释放我使用的所有资源,或者我可以安全地忽略异常。
//...
OutputStream output = null;
try {
output = connection.getOutputStream();
output.write(query.getBytes(charset));
} finally {
if (output != null) try {
output.close();
} catch (IOException e) {
// Do i need to do something here ?
}
}
【问题讨论】:
-
你永远不应该忽略可能抛出的异常,看看 Java 7 中新增的 Try-With 资源块,它可能会让这段代码看起来更漂亮:docs.oracle.com/javase/tutorial/essential/exceptions/…
-
你能用它做什么?
-
是的,那个总是让我摸不着头脑。我总是做的只是记录错误,这样如果它发生了,我就知道它确实发生了——但我不知道在这种情况下需要做什么才能恢复(如果有的话)。
-
Hunter McMillen:但是您推荐的 try-with-resources 块可能会产生忽略 Jimmy 询问如何处理的异常的效果。阅读您的链接对“抑制”异常的讨论。
标签: java io outputstream