html tool

2023年12月6日星期三

哈哈哈的perl carp异常模块

 参考:https://www.runoob.com/perl/perl-error-handling.html

在看perl的异常模块carp,要笑死pope了;perl的carp模块的语义都是段子手级别的:)

来看看 carp 吹毛求疵 模块 的carp 吹毛求疵方法

carp 函数

carp函数可以输出程序的跟踪信息,类似于 warn 函数,通常会将该信息发送到 STDERR:

package T;

require Exporter;
@ISA = qw/Exporter/;
@EXPORT = qw/function/;
use Carp;

sub function {
   carp "Error in module!";
}
1;

在脚本调用以下程序:

use T;
function();

执行以上程序,输出结果为:【popexizhi: 我crap 吹毛求刺,我只提供抱怨:)】

Error in module! at test.pl line 4


来看看 carp 吹毛求疵 模块 的cluck 唠叨方法

cluck 函数

cluck() 与 warn() 类似,提供了从产生错误处的栈回溯追踪。

package T;

require Exporter;
@ISA = qw/Exporter/;
@EXPORT = qw/function/;
use Carp qw(cluck);

sub function {
   cluck "Error in module!";
}
1;

在脚本调用以下程序:

use T;
function();

执行以上程序,输出结果为:【popexizhi:我cluck 咯咯声,啧啧声,关心的唠叨,就要说出全部栈,比carp的吹毛求疵多了上下文哈:)】

Error in module! at T.pm line 9
    T::function() called at test.pl line 4

来看看 carp 吹毛求疵 模块 的croak 死亡前的嘶哑说话 方法(好吧,和die的还真是关系)

croak 函数

croak() 与 die() 一样,可以结束脚本。

package T;

require Exporter;
@ISA = qw/Exporter/;
@EXPORT = qw/function/;
use Carp;

sub function {
   croak "Error in module!";
}
1;

在脚本调用以下程序:

use T;
function();

执行以上程序,输出结果为:【popexizhi:我croak 死前的嘶哑,就说出死了位置就不错了哈:),不要强求;问题是这个croak死去呻吟 与carp 的吹毛求疵 好像 是一样的内容啊?!那die前的croak 嘶哑说 和吹毛求疵 的carp  是没有区别吗?】

Error in module! at test.pl line 4

来看看 carp 吹毛求疵 模块 的 confess忏悔方法 (好吧,这个是die前的忏悔吧有时间,所以多说哈:))

confess 函数

confess() 与 die() 类似,但提供了从产生错误处的栈回溯追踪。

package T;

require Exporter;
@ISA = qw/Exporter/;
@EXPORT = qw/function/;
use Carp;

sub function {
   confess "Error in module!";
}
1;

在脚本调用以下程序:

use T;
function();

执行以上程序,输出结果为:【popexizhi:  这个confess 忏悔多了栈信息,和之前的croak 与carp 的问题相同;这个忏悔的confess 与 唠叨的cluck 有什么区别呢?难道 唠叨cluck 就是忏悔confess吗?:)】

Error in module! at T.pm line 9
    T::function() called at test.pl line 4

没有评论:

发表评论