我玩弄錯誤處理,並得到一個小問題。 我使用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