php異常處理,php異常捕獲
使用try{thow}catch(){}異常處理結構,可以有效控制多行可能發生異常的代碼,基本模型如下:
phptry{throw new Exception("錯誤資訊";) //拋出一個錯誤} catch(Exception $e) //捕獲錯誤資訊,Exception是一個內建的錯誤處理類{echo $e->getMessage(); //輸出錯誤資訊echo $e->getCode(); //返回異常代碼echo $e->getFile(); //返回傳生異常的檔案echo $e->getLine(); //返回傳生異常的行號}?>
Exception原形:
phpclass Exception{ protected $message = 'Unknown exception'; // 異常資訊 private $string; // __toString cache protected $code = 0; // 使用者自訂異常代碼 protected $file; // 發生異常的檔案名稱 protected $line; // 發生異常的程式碼號 private $trace; // backtrace private $previous; // previous exception if nested exception public function __construct($message = null, $code = 0, Exception $previous = null); final private function __clone(); // Inhibits cloning of exceptions. final public function getMessage(); // 返回異常資訊 final public function getCode(); // 返回異常代碼 final public function getFile(); // 返回傳生異常的檔案名稱 final public function getLine(); // 返回傳生異常的程式碼號 final public function getTrace(); // backtrace() 數組 final public function getPrevious(); // 之前的 exception final public function getTraceAsString(); // 已格成化成字串的 getTrace() 資訊 public function __toString(); // 可輸出的字串}?>
同時,一個try也可以關聯多個catch塊,可以自訂類繼承Exception類來實現
php class myException1 extends Exception{} //根據需要自訂 class myException2 extends Exception{} class myException3 extends Exception{} try{ switch(1){ case 1:throw new myException1(); case 2:throw new myException2(); case 3:throw new myException3(); //當找不到對應的catch代碼塊時,將會拋到Exception處理,因為myException3繼承了Exception } } catch(myException1 $e){ echo "自訂錯誤1"; } catch(myException2 $e){ echo "自訂錯誤2"; } catch(Exception $e){ echo "原始異常類"; }?>
http://www.bkjia.com/PHPjc/1127597.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1127597.htmlTechArticlephp異常處理,php異常捕獲 使用try{thow}catch(){}異常處理結構,可以有效控制多行可能發生異常的代碼,基本模型如下: ? php try {throw new Exc...