文系seの備忘録

Excelの改行でひたすらスペースを打っていた機械音痴の文系seが日々の備忘録を綴る。

throwsの挙動を確認してみた


1.catch節を書いた場合


メソッドAにてCを呼び出し。

メソッドC内ではキャストを行っているが、キャストに失敗するため例外発生。

発生した例外はcatch節で捉えられる。


実行結果は以下のようになる。

図にするとこんなかんじ。
f:id:ron623:20150223150723p:plain






2.catch節を書かなかった場合

catch節を書かずtry-finallyのみ。

すると、、
methodA()では例外をキャッチしないため処理が中断され以下のような結果となる。

例外ハンドラが見つからない場合、Java実行システムはさらにメソッド呼び出し元(この場合はmainメソッド)へ、例外ハンドラを捜しに行きます。
最終的に例外ハンドラが見つからなかった場合はJavaのデフォルトの例外処理を実行します。
http://www.javaroad.jp/java_exception3.htmより)


上記を踏まえて図にしてみるとこんなかんじ。

f:id:ron623:20150223152804p:plain