在我的应用程序中,我使用XML :: Simple并使用导出的XMLin()来解析XML文件.一切顺利,直到将无效的文件路径用作XMLin()的参数.
应用程序终止,因为XML :: Simple在给出无效文件路径时使用了die()或类似的方法.
我希望我的应用程序继续运行,即使XML :: Simple遇到了错误.所以我该怎么做?
小智 6
处理异常.
一般方式:
use English qw( -no_match_vars );
eval {
run_your_code_that_might_die();
};
if ( my $error = $EVAL_ERROR ) {
die $error unless $error =~ m{some|known|error};
handle_known_error( $error );
}
Run Code Online (Sandbox Code Playgroud)
英语只有这样我可以使用$ EVAL_ERROR而不是$ @.
通常,检查perldoc的eval函数.
在块eval中包含调用:
eval {
do_stuff_that_might_die();
1;
} or do {
# Only executes if the call died, in case you want
# to do any cleanup or error handling
print "It died, but life goes on!\n";
}; # <-- Don't forget the semicolon!
Run Code Online (Sandbox Code Playgroud)