1. 程式人生 > >Perl的錯誤處理(1)

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 表示不在控制檯列印錯誤資訊。