如果您要打开连接,通常您所做的是 try-catch-finally
try {
doSomething();
} catch(Exception e) {
// handle the exception
} finally {
close();
}
在我的场景中,我有两个 catch 和两个不同的关闭:正常情况下的 close() 和抛出 StrangeException 的 closeStrange() 。
我想出了这样的事情:
try {
doSomething();
} catch(StrangeException e) {
closeStrange();
throw new MyExc(e);
} catch(Exception e) {
close();
throw new MyExc(e);
}
close();
我想知道以这种方式处理这种情况是否安全。
编辑:
可能还不清楚:我只想调用一个结束。如果抛出 StrangeException,则 closeStrange(),如果抛出另一个异常或不抛出任何异常,则 close()。