try with resources
在Android上不可用,
如果你想针对各种各样的设备,
所以我想用这样的语义来模仿这样的东西:
此类代码是否可以按我的意愿工作,或者我错过了什么?并且可以以某种方式简化它吗?
final Closeable closebale = ...;
try {
//work with closeable
} catch (IOException e) {
try {
closeable.close();
} catch (IOException e2) {
//log exception
}
closeable = null;
throw e;
} finally {
if (closeable != null) {
//we not catch any exception
closeable.close();
}
}
答案 0 :(得分:-1)
Java中的历史模式是:
Closeable foo = null;
try
{
foo = ...;
...
}
finally
{
if (foo != null)
{ foo.close(); }
}
如果您希望捕获并处理或禁止在尝试关闭资源期间发生的任何异常,您可以将.close()
的调用放在try-catch
块中。我建议不要压制异常。至少应该记录它们。