我有一個數據庫查詢,我在一個評估中運行,以捕獲錯誤。問題在於錯誤消息正在輸出到控制檯,即使它正在被困住。如何阻止這樣做的錯誤信息,因爲我想自己解析並吐出我自己的消息?爲什麼我在控制檯上看到DBI錯誤,即使我在eval中包裝了DBI調用?
my $dbh = DBI->connect('dbi:Pg:dbname=database;host=localhost',
'user', 'pass',
{RaiseError => 1}
);
eval{
$sth = $dbh->prepare($sql);
$sth->execute;
};
if([email protected]){
#Do my parse/print stuff here I know
}
也許''HandleError'也可以使用,如果你要沿(Print | Raise)錯誤路線走。 – vol7ron 2010-07-08 16:08:03
@ vol7ron HandleError也是一種可能性,但我從來沒有發現它的好用,因爲我通常只是在eval {}中包裝代碼塊來捕獲所有異常,而不僅僅是DBI錯誤。 – runrig 2010-07-08 16:55:40
您也可以爲每個語句句柄設置一些這些屬性。 – 2010-07-08 20:02:23