3

我试图使用来自 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;

当我执行此操作时,它没有显示任何错误,并像“在尝试块之前”一样给出 o/p,并且在不打印“尝试块”语句的情况下结束。

但是当我评论

#exit;

我工作正常并在 catch 块中显示打印语句,我做错了吗?只是想找出问题所在。

4

1 回答 1

6

我认为你需要一个;(分号)在 try-catch 的末尾

} catch {
        print "got error :- $_ \n";
};

从他们关于cpan的例子

另外,你需要exit吗??

(礼貌 ysth)
解释: catch 有两个参数:一个代码块和一个可选参数,用于作为 finally 子句......但这里它被传递了 exit 的返回值作为第二个参数,它会抱怨除了那个出口永远不会回来。

于 2013-02-27T06:06:52.340 回答