説明
Perlでエラーを補足するのにみなさんはどのような方法をとっていますか?
例えばXML::RSSモジュールを使ってRSSのパースを行う場合、RSSにゴミ(制御コードとか)が入っていてwell-formedになっていないとモジュール内でエラーが発生して全体の処理が中断してしまいます。
これを防ぐために僕はエラーの起きそうな処理をevalブロック内に入れてエラー自体が全体の処理を止めないようにしています。
他に良い方法があればぜひ教えて下さい。
コメントする
[block]から[/block]までの範囲はブロック表示されます。
部分的に目立たせたい時や、引用などにお使いください。
[code]から[/code]までの範囲は等幅表示されます。
ソースコードや設定ファイルの記述などにお使いください。









ラクダ本には自分でtry{}catch{}構文を書く方法が乗っていますが・・・ try(&$){
my ($try, $catch) = @_;
eval { &$try };
if($@){
local $_ = $@;
&$catch;
} catch(&){ $_[0] }
{
die "ERR1"; {
SWITCH:{
/ERR1/ and do{ print "ERR1 !!\n"; last SWITCH;};
/ERR2/ and do{ print "ERR2 !!\n"; last SWITCH;};
print "unknown error: $_";
}
#####################
sub
}
sub
try
}
catch
}
###############################
構文がわかりにくいですねぇ。