eval { # here is put some code that may throw exception return 1; } or do { my $error = $@; # Handle error. };
>以下样式是否可以防止$@未设置
对吗?
>以下“1”是什么防范?
>“或者做”比“if($@){”更好吗?如果是这样,为什么?
解决方法
有关使用eval作为try-type语句时可能出错的事项的讨论,请参阅
Try::Tiny文档,如何避免它们,以及为什么发布的代码以1结尾(以确保eval块在完成后返回true值成功).
阅读之后,考虑使用Try :: Tiny,而不是通过所有的旋转来确保你的每一个evals都能正常运行.毕竟,懒惰是程序员的first great virtue.