登录Perl中未捕获的异常

我有一个Perl的web应用程序,并想记录所有未捕获的异常(uneval'ed芯片的)。 我首先想到的是做这样的事情:

use Carp 'cluck'; sub main { my $logfile ="/some/path/logfile.txt"; open STDERR, ">>$logfile"; # main logic ... } sub eval_main { eval { main; }; if ([email protected]) { cluck [email protected]; close STDERR; # redirect to "friendly error page" .... } } eval_main;

难道还有比这更好的办法吗?

编辑:添加重定向

--------------解决方案-------------

只需用$SIG{__DIE__}处理程序。 请参阅perlvar%SIG:

$SIG{__DIE__} = sub {
open LOG, ">>my/error.log";
print LOG @_;
close LOG;
print STDERR @_;
exit 1;
};

sub main {
...
}

main();

分类:perl的 时间:2015-03-15 人气:2
本文关键词: Perl中,异常处理
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 1.146 (s). 10 q(s)