- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!!!技術的雑談-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}}
[[技術的雑談]]へ戻る