我想在更高级别处理异常,而不是在此方法中,但我想确保对象 a 和 b 正确关闭。
close() 方法也可以抛出异常。
这个模板是解决这个问题的合适解决方案还是有更智能/更简单的解决方案?
public void foo() throws Exception {
A a = null;
B b = null;
try {
a = new A();
b = new B();
...
} catch(Exception e) {
throw e;
}
finally {
Exception ex = null;
try {
if (a != null)
a.close();
} catch(Exception x){
ex = x;
}
try {
if (b != null)
b.close();
} catch(Exception x) {
ex = x;
}
if (ex != null)
throw ex;
}
最佳答案
A a = null;
try
{
a = new A();
//do stuff
}
finally
{
a.Close();
}
try
block 不需要 catch
block ,它需要 catch
或 finally
block (或两者兼而有之)。
关于java - 如何正确处理多个异常抛出对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5060252/