【发布时间】:2018-03-16 20:24:54
【问题描述】:
我在 perl 中为我的日志记录框架覆盖了 die,以便它可以记录消息并在控制台上打印。
模具的覆盖代码:
BEGIN{ *CORE::GLOBAL::die = sub {
my ($package, $filename, $line, $subroutine) = caller;
untie *STDERR;
my $message;
foreach my $arg (@_) {
$message = $message.$arg;
}
print STDERR $message;
tie *STDERR, __PACKAGE__, (*STDERR);
logmessage("die",$message,$filename, $line);
#What exit code to pass?
#exit CODE;
}
}
我不知道在退出进程时设置什么退出代码,因为普通模具退出并带有错误代码。
有什么方法可以找出当 die 时要设置的退出代码 叫什么?
如果能知道可用的错误代码列表也会很有帮助 在 perl 中?
【问题讨论】:
-
请注意,
die()只是抛出一个异常,稍后可以使用eval { ... }捕获该异常。die()不应该直接终止程序! -
旁注:看看
$SIG{__DIE__}是否能满足你的需要。 -
好的,我会检查的
标签: perl error-handling die