我试图使用cpan中的Try :: Tiny包,并编写了如下的简单代码
use strict;
use Try::Tiny;
print "before try block";
try {
print "try block";
my $test = 10/0;
} catch {
print "got error :- $_ \n";
}
exit;
Run Code Online (Sandbox Code Playgroud)
当我执行它时,它显示没有错误,并给出o/p像"在尝试块之前"并结束而不打印"try block"语句.
但是当我发表评论时
#exit;
Run Code Online (Sandbox Code Playgroud)
我工作正常并在catch块中显示print语句,我做错了什么?只是想找出问题所在.
我认为你;在try-catch的最后需要一个(分号)
} catch {
print "got error :- $_ \n";
};
Run Code Online (Sandbox Code Playgroud)
从他们在cpan上的例子
此外,你需要exit??
(ysth提供)
解释: catch有两个参数:一个代码块,一个可选参数,意图是finally子句...但是这里它被传递exit的返回值作为第二个参数,它会抱怨除了退出永远不会返回.