!!!技術的雑談-perlでのtry/catchの書き方 !!環境 perl 5(確認はperl5.8) !!現象 perlの中でscriptの例外を扱いたい。 Javaで言うところの「try/catch」みたいなスタイルで。 !!対処 perlでは例外処理という便利な機能がない(いや、正確にはあるんですが…)ため、try/catchは'''"eval"文'''と'''$@'''特殊変数で代用します。 *eval -- 後に続くルーチンを実行評価する。(エラーを直接メインスレッド(?)に飛ばさない形で実行する。) *$@ -- 最後に実行したコマンドの戻り値(エラー値)を格納している特殊変数 書き方の例です↓ eval { <実行したい処理> }; # <-ココのコロンを忘れる事が多いので注意 if($@) { <Error発生時に実行したい処理> } <通常の処理> これはお約束ですので覚えてしまいましょう。 !!履歴 2005/7/14 -- 初版 [[技術的雑談]]へ戻る !!突っ込み *use Try::Tiny; # http://search.cpan.org/perldoc?Try::Tiny - 名無しさん (2010年08月05日 00時37分24秒) {{comment}} [[技術的雑談]]へ戻る {{trackback}} [[技術的雑談]]へ戻る