Perl 模块中的错误
在使用 Perl 编程时,我们需要处理两种不同的情况:
- 在模块中报告错误,并引用模块的文件名和行号 - 这在调试模块时非常有用,或者当您想专门引发与模块相关的错误而不是与脚本相关的错误时。
- 在模块中报告错误,并引用调用者的信息,以便您可以调试导致错误的脚本中的行。以这种方式引发的错误对最终用户很有用,因为它们突出了与调用脚本的源代码行相关的错误。
当从模块内部调用 **warn** 和 **die** 函数时,它们的工作方式与您预期略有不同。例如,简单的模块:
package T;
require Exporter;
@ISA = qw/Exporter/;
@EXPORT = qw/function/;
use Carp;
sub function {
warn "Error in module!";
}
1;当从如下脚本调用时:
use T; function();
它将产生以下结果:
Error in module! at T.pm line 9.
这或多或少是您可能预期的结果,但未必是您想要的。从模块程序员的角度来看,这些信息很有用,因为它有助于指出模块本身中的错误。对于最终用户来说,提供的信息几乎毫无用处,并且对于除经验丰富的程序员之外的所有人来说,它完全毫无意义。
解决此类问题的方案是 Carp 模块,它提供了一种简化的方法来报告模块内部的错误,并返回有关调用脚本的信息。Carp 模块提供了四个函数:carp、cluck、croak 和 confess。
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP