die()
PerlEND
ブロックで発生する a を無視するにはどうすればよいですか?
今のように私は得る
END が失敗しました -- コール キューが打ち切られました
そして、エラーは呼び出しスクリプトを泡立てます。
die()
PerlEND
ブロックで発生する a を無視するにはどうすればよいですか?
今のように私は得る
END が失敗しました -- コール キューが打ち切られました
そして、エラーは呼び出しスクリプトを泡立てます。
終了ブロックを の中に入れてくださいeval { .... }
- これにより、説明した動作が妨げられるはずです。
#!/usr/bin/perl
print("hi there!\n");
END {
eval{
print("goodbye\n");
die("this can't hurt....");
};
#detect if an error occurred in the eval
if ( $@ ){
print ("an error occurred: $@\n");
}
}
コードを eval ブロック内に配置し、die が提供するエラー メッセージを取得する場合は、ブロック外で if 条件を使用してキャプチャできます。
#!/usr/bin/perl
my $val=1;
eval
{
print "Inside Eval\n";
if($val == 1)
{
die "hello world\n";
}
print "End of Eval\n";
};
if ( $@ )
{
print "Error message - $@" . "\n";
}
Try::Tiny
eval
は、実行時の例外を明示的に処理できるようにするための優れたラッパーです。