public Foo doDangerousStuff() throws Exception {
try {
dangerousMethod();
return new Foo();
} catch (Exception e) {
throw e;
} finally {
mustBeCalledAfterDangerousMethod();
}
}
这与我们省略 catch 子句的行为有什么不同吗?
public Foo doDangerousStuff() throws Exception {
try {
dangerousMethod();
return new Foo();
} finally {
mustBeCalledAfterDangerousMethod();
}
}
[编辑]为了消除混乱,是的,catch
除了重新抛出异常之外,该块什么都不做。我想知道这是否会在调用块时导致某种不同的排序finally
(假设抛出的异常被调用者捕获),但从我迄今为止从答案中推断出来的,它没有。