我玩弄错误处理,并得到一个小问题。 我使用DBI模块连接数据库。Perl:捕获错误无死亡
我通过使用一个调用错误的子例程来完成自己的错误处理。
我能听到我自己的模具,进行处理得很好,但,当我的数据库连接失败,DBI模块显然打印出它自己的芯片:
DBI connect(...) failed: ORA-12154: TNS:could not resolve the connect identifier specified (DBD ERROR: OCIServerAttach) at ...
我怎么会去追赶呢?
我尝试使用$SIG{__DIE__}
像这样:
local $SIG{__DIE__} = sub {
my $e = shift;
print "Error: " .$e;
};
这是我的主要文件的底部,在这个文件我也调用connect子程序可用我自己的模块中。我也试着把这段代码放在我的模块的底部,但它仍然在它的前面打印出错误,而不是在其前面没有
Error:
。
这是正确的,这是一个警告,而不是一个死亡,并且必须首先安装处理程序。如果将其包装在'BEGIN {}'中,可以将它安装在任何模块中。 – Ether 2010-04-13 14:56:12
也读了,谢谢你的验证。 – Pmarcoen 2010-04-13 15:33:30