加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

如果在它使用的模块中抛出异常,我怎么能阻止我的perl脚本终止?

发布时间:2020-12-16 06:11:44 所属栏目:大数据 来源:网络整理
导读:我有一个perl脚本,使用标准的net :: HTTP代码和perl 5.8.8. 我遇到了一个错误情况,当我调用时服务器返回0字节的数据: $_http_connection-read_response_headers; 不幸的是,我的perl脚本死了,因为Net :: HTTP :: Methods模块在306行有一个“die”: Server c
我有一个perl脚本,使用标准的net :: HTTP代码和perl 5.8.8.
我遇到了一个错误情况,当我调用时服务器返回0字节的数据:

$_http_connection->read_response_headers;

不幸的是,我的perl脚本死了,因为Net :: HTTP :: Methods模块在306行有一个“die”:

Server closed connection without sending any data back at
/usr/lib/perl5/vendor_perl/5.8.8/Net/HTTP/Methods.pm line 306

当然,第305-307行是:

unless (defined $status) {
die "Server closed connection without sending any data back";
}

如何让我的脚本“从这种情况中优雅地恢复”,检测死亡并随后进入我自己的错误处理代码,而不是自己死?

我敢肯定这是一个常见的情况,可能是一些简单的事情,但我之前没有遇到过.

解决方法

您可以使用eval {}来捕获die()异常.使用$@检查抛出的值:

eval {
    die "foo";
};
print "the block died with $@" if $@;

有关详情,请参见http://perldoc.perl.org/functions/eval.html.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读