perl -MCarp=verbose -e "package pack; sub pub { Carp::carp(qq(hello)); print
q(world); }; pub;"
hello at -e line 1
pack::pub() called at -e line 1
world

这个模块也不错,一直看到有人用,今天尝试了一下感觉还不错。

2009/8/7 yi wang <[email protected]>

> 学习了,谢谢!
>
> 2009/8/7 smallfish <[email protected]>
>
>> 同理,偶也喜欢die。
>> --
>> blog: http://hi.baidu.com/smallfish_xy
>>
>>
>> 2009/8/7 Qiang (James) <[email protected]>
>>
>> yi wang wrote:
>>> > 诸位,请教大家一个开放问题
>>> > 诸位在用perl写程序时,是如何做错误处理的? 我使用的一个方法是子程序返回错
>>> > 误代码,然后在头文件中建立错误代码和错误消息的hash表。但是,我自己觉得这
>>> > 个方法不够smart, 诸位有没有什么其他办法呢?
>>> >
>>>
>>> 我的程序是直接在出错的地方 die 而不是返回错误代码。其中一个好处是利用
>>> die 函数的特性直接报告哪行那个文件出错 (如果是 apache 的话,错误信息就直
>>> 接写在 log 文件里,方便跟踪错误),另一个好处是在出错的地方直接返回错误
>>> 信息,而错误代码不够直观。
>>>
>>> 具体的使用大概如下:
>>>
>>> 简单的程序直接 die "错误信息";
>>>
>>> 稍大型,复杂的程序的话就写一个 config 文件来储存错误信息, 然后直接在出错
>>> 的地方 die MyErrorConfig->msg("Password_File_Not_Found"); 如果想处理这些
>>> 错误而不是让用户看到具体的错误信息,eval { sub_where_it_dies() }; if( $@
>>> ) { #返回一般性错误提示 }
>>>
>>> 另外,mastering perl 的第十二章对错误信息的生成和报告进行了讨论。
>>>
>>> 暂时想到的就这些了。
>>>
>>> Qiang
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>
>>
>>
>
>
> --
> 和你在一起
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛“PerlChina Mongers 讨论组”论坛。
 要在此论坛发帖,请发电子邮件到 [email protected]
 要退订此论坛,请发邮件至 [email protected]
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

回复