要当安静的女子

导航

perl中eval与die

perl中使用eval捕获错误,在eval中使用die和在eval外使用die的区别,举个小例子咯。

 1 #!/usr/bin/perl
 2 3 
 4 sub main {
 5     print "hello\n";
 6     eval {
 7         print "in eval\n";
 8         my_die "in my_die";
 9         print "world\n";
10     };
11     if (my $err = $@ ){
12         my_die "has err:$err";
13         print "in err\n";
14     }
15     print "world\n";
16 }
17 main();

# perl test_eval1.pl

hello

in eval

has err:in my_die at test_eval1.pl line 8.

 

将代码中的12行注释掉

#perl test_eval2.pl

hello

in eval

in err

world

 

eval中使用die会比捕获,只会停止执行eval中的代码,然后跳出eval继续执行;eval外使用die,则会直接停止执行整个函数

posted on 2017-01-03 14:37  码啾码  阅读(194)  评论(0)    收藏  举报