Perlでエラートラップ
l-w-i
l-w-i
ATOMRSS
  • ソースコードID: 554
  • 登録日時: 2008/06/24 16:21
  • 最終更新日時: 2008/06/26 01:46
  • アクセス数: 582
  • タグ:  perl
  • codeなにがしブックマークに追加する 0 users
  • このページを del.icio.us に追加
  • このページをはてなブックマークに追加
  • GoodJob
  • 2

GJGJ

説明

Perlでエラーを補足するのにみなさんはどのような方法をとっていますか?

例えばXML::RSSモジュールを使ってRSSのパースを行う場合、RSSにゴミ(制御コードとか)が入っていてwell-formedになっていないとモジュール内でエラーが発生して全体の処理が中断してしまいます。

これを防ぐために僕はエラーの起きそうな処理をevalブロック内に入れてエラー自体が全体の処理を止めないようにしています。

他に良い方法があればぜひ教えて下さい。

ソースコード

コメント

ラクダ本には自分でtry{}catch{}構文を書く方法が乗っていますが・・・
#####################
sub try(&$){
    my ($try, $catch) @_;
    eval &$try };
    if($@){
        local $_ $@;
        &$catch;
    }
}
sub catch(&){ $_[0] }



try {
    die "ERR1";
}
catch {
    SWITCH:{
        /ERR1/ and do{ print "ERR1 !!\n"; last SWITCH;};
        /ERR2/ and do{ print "ERR2 !!\n"; last SWITCH;};
        print "unknown error: $_";
    }
}
###############################

構文がわかりにくいですねぇ。

GJ

  • l-w-i
  • 2:l-w-i
  • 2008/06/26 01:46

そうなんです、分かりにくいんです。

  • GoodJob
  • 0

前へ 1 次へ

コメントする

[block]から[/block]までの範囲はブロック表示されます。
部分的に目立たせたい時や、引用などにお使いください。

[code]から[/code]までの範囲は等幅表示されます。
ソースコードや設定ファイルの記述などにお使いください。

ゲスト投稿者:ゲスト:

PDFLib | A library for processing PDF on the fly プレゼン公開・共有サイト handsOut.jp オープンタイプ株式会社 チーム・マイナス6% - みんなで止めよう温暖化

ソースコードのブログパーツ

デフォルトのフォントサイズ
修飾
表示サイズ
px px
プレビュー (表示する)
下のプレビュー領域をクリックすると、ポップアップで全体を見ることができます。
パラメータが不正です

    GoodJobしたユーザ

    • mikeda

    ブックマークコメント

    関連するなにがし

    前へ 1 次へ

    タグ

    dyndnsbytearrayinputstreamobjectinputstreambytearrayoutputstreamobjectoutputstreamディープコピーdeepcopyarraylistiteratorチェックボックス複数multibytexencentos文字エンコーディングinit_connectcharacter-set-servercollation-serverdefault-character-setf:label動的メソッド呼び出しヘルパーメソッドwsse2重登録防止prototype.js位置positionpositionedoffsetscrolltoスクロールlink_tocyclecheck_box_tagチュートリアルactive_formerror_messages_forハイライトバリデーションvalidate便利リストデコレーションメールデコメ非対応機種tilestext_field_tag一括複数情報etherealrtphexテキストデータ抽出validwhenリセット一括更新plop置換replacepcoslogmixisregソケットnet::telnetfopenmutexサンプルcalendar[linux][bash][シェルスクリプト][大容量]mobilerorrails2.1clipboardクリップボード横向きピラミッドs2jdbc-genjsonicお絵かきフルパス名抽出サブドメインサブドメイン名s2jdbc自動生成エンティティドコモxhtmlrestdoltengspidering背景変更グラデーションiso一括登録xトークンチェックevalmonitorslavereplication画像処理

    前へ 1 2 3 ... 8 次へ