这个功能不太清楚。
情况是我们有API,它有自己的eval catch,它通常返回一个状态。 我们使用这个API并且需要有关执行的特定状态,我们的想法是使用外部eval来捕获API引发的任何错误。可能吗 ?或者它被内部评估忽略了。
答案 0 :(得分:2)
如果API在“捕获”错误时“抛出”错误,那么是的,您的外部die
可以“抓住”它并按需要处理它。如果API捕获并且只返回错误代码,例如返回值,那么您不需要外部eval
。更具体的例子可能会有所帮助......
答案 1 :(得分:0)
会工作,结帐这个例子......
use strict;
use warnings;
eval { api_function(); };
if ($@) {
warn "Oops! API error!";
}
sub api_function {
eval {
my $a = 1;
my $x = 1 / $a;
};
if ($@) {
warn "Oops! error!";
}
my $a = 0;
my $x = 1 / $a;
}