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
(スローされた例外が呼び出し元によってキャッチされたと仮定します)、これまでの回答から推測すると、そうではありません。