Perl的錯誤處理(1)
這裡首先來介紹一下資料庫操作的錯誤處理。(以MySQL為例)
使用eval{}if([email protected]){}來完成錯誤處理。
先舉例子
eval{
$dbh = DBI->connect($database,$db_user,$db_pswd,{RaiseError=>1,AutoCommit=>0,PrintError=>0});
# 資料庫操作寫在這裡
};
if ([email protected]) {
# 錯誤處理寫在這裡
# [email protected]為錯誤描述
$errCode=$DBI::err; # 錯誤號
SWITCH:{
if ($errNumber==1044) {print("DatabaseName error!");last SWITCH;}
if ($errNumber==1045) {print("UserName or Password error!");last SWITCH;}
if ($errNumber==2003) {print("Can't connect to MySQL server! Please check out the value of DBhost,DBport and the physical connection that is from client to MySQL server.");last SWITCH;}
if ($errNumber==2013) {print("Lost connection to MySQL server!");last SWITCH;}
printLog(@_[0]);
} # 根據錯誤號進行提示,或者錯誤處理
}
注意:1 eval使用時,資料庫聯接的選項RaiseError=>1這樣設定。
2 PrintError=>0 表示不在控制檯列印錯誤資訊。