Java言語入門 〜C言語を学んだ君へ〜
[第13回]練習問題 第2問解答
第13回 第2問解答
第13回 第2問解説
例外が発生した時にどのように処理するのかという問題でした。
1.Dの表示
main()メソッドにある、func1()メソッドを実行します。
func1()メソッド内でエラーが起きるので、catchブロック内を実行します。
ここで、"D"が表示されます。
2.Eの表示
例外が発生したのでfunc1()メソッドを呼び出したmain()に戻ろうとしますが
その前にfunc1()メソッド内にはfinallyブロックがあるので、先にこちらを実行してから戻ります。
"E"が表示されます。
3.Fの表示
戻ったmain内にもfinallyがあるので、実行します。
func2()メソッドを呼び出しています。
func2()メソッドが実行され、tryブロック内の処理が行われます。
"F"が表示されます。
4.Hの表示
catchブロックになる例外はないので、finallyブロックを処理します。
"H"が表示されます。
5.Bの表示
finallyブロックが処理されたあとmain内にあるfinallyの続きが実行されます。
"B"が表示されます。
6.Cの表示
tryブロックの処理が終了したので、tryの外にある"C"が表示されます。