【发布时间】:2016-06-12 03:35:12
【问题描述】:
我编写了一个 perl 程序,它在内部调用了三个 perl 模块。我的主管在查看代码后要求我添加全局异常处理。我不明白他这是什么意思。他还说使用 Eval 来完成这个。我不知道如何使用 Eval 以便它捕获 enire perl 模块中的任何异常。任何人都可以通过提供链接或提供解释来帮助我吗? 提前致谢。
【问题讨论】:
-
我想你可能得问问你的主管了!就我而言,Perl 中的全局异常处理涉及通过将子例程分配给
$SIG{__DIE__}来编写die处理程序(如perlvar 中所述)。而且它真的只对调试有用。另一方面,eval允许您仅在一个代码块中处理错误。我想如果你有一个执行整个程序的main()子例程,就像在 C 中一样,那么你可以把它放在一个eval { main(); }块中,但我不确定我是否明白这一点。 -
这是一个非常小的项目,由大约 400 行代码组成。我的主管需要的是 - 我总共有 4 个程序(一个主程序和三个从主程序调用的子模块)。对于每个程序,他希望我有一个异常处理,如果出现问题,它将突出显示,便于我们调试。
-
@nithin:但这已经发生了。如果您的代码遇到致命错误,那么它会终止并显示一条消息,给出原因,以及当时正在执行的源文件和行号。你的主管显然让我和许多其他 Stack Overflow 订阅者感到困惑,因为到目前为止你根本没有答案。他们是否要求堆栈回溯?仅仅知道失败发生在代码中的哪个位置可能是不够的,因为原因最终是由于错误的参数被传递给子例程。向您的主管询问错误的示例以及他们想要的信息
标签: perl perl-module