トップ 一覧 検索 ヘルプ RSS ログイン

技術的雑談-perlでのtry/catchの書き方の変更点

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

[[技術的雑談]]へ戻る