技術的雑談-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秒)