Sun認定Java資格 実用情報【SJC-P用】at PROG
Sun認定Java資格 実用情報【SJC-P用】 - 暇つぶし2ch624:606
04/03/13 15:07
606の問題について,自分なりに考えてみました。

JLSを少しばかり流し読みしたんですけど,それによると

「finallyブロック内で中途完了した場合は,スローされた例外は捨てられる」

とあります。中途完了とは私の思い付く限りでは,return文,またはthrow文が
finallyブロック内で実行された時です。throw文の場合は,スローした例外を
finallyブロック内でキャッチできなかった場合です。


で,プログラムの流れなんですけど,

JLSをちょこちょこっと見ただけなのでが,「スローされた例外が捨てられる」
とは,実行時だと解釈できますよね。

でも実は,methodメソッドのthrows宣言がなくてもコンパイルエラーとはなり
ませんでした。ということは,コンパイル時にfinallyが中途完了するという事
をチェックしている,という事でしょうか? 中途完了しないようにreturnを削
除してコンパイルを行った所,キャッチ,またはthrows宣言がない,とエラーが
出ます。
コンパイル時にチェックされているのなら初めから例外はスローされていない
可能性も何となく考えられなくもありませんが,詳細は分かりません。

何れにせよ,finallyが中途完了した場合は,それまでに例外がスローされて
いたなら,その例外オブジェクトは無効になってしまう,ということです。

実務は未経験ですが,現場ではこのような知識も必要とされるのでしょうか?



次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch