異常(接上篇)
一個簡單異常處理實例
<?php try { $error= 'Always throw this error'; throw new Exception($error); //創建一個異常對象,通過throw語句拋出 echo 'Neverexecuted'; //從這裡開始,try代碼塊內的代碼將不會再被執行 } catch (Exception $e) { echo 'Caught exception:', $e->getMessage(), "\n"; //輸出捕獲的異常消息 } echo 'Hello World'; //程序沒有崩潰繼續向下執行 ?>
系統自帶異常處理
<?php classException{ protected$message='Unknownexception';//異常信息 protected$code=0;//用戶自定義異常代碼 protected$file;//發生異常的文件名 protected$line;//發生異常的代碼行號 function__construct($message=null,$code=0); finalfunctiongetMessage();//返回異常信息 finalfunctiongetCode();//返回異常代碼 finalfunctiongetFile();//返回發生異常的文件名 finalfunctiongetLine();//返回發生異常的代碼行號 finalfunctiongetTrace();//backtrace()數組 finalfunctiongetTraceAsString(); //已格成化成字符串 的getTrace()信息 /*可重載的方法*/ function__toString();//可輸出的字符串 } ?>
<?php /* 自定義的一個異常處理類,但必須是擴展內異常處理類的子類*/ class MyExceptionextends Exception{ //重定義構造器使第一個參數message 變為必須被指定的屬性 public function __construct($message, $code=0){ //可以在這裡定義一些自己的代碼 //建議同時調用parent::construct()來檢查所有的變量是否已被賦值 parent::__construct($message, $code); } public function __toString() { //重寫父類方法,自定義字符串輸出的樣式 return __CLASS__.":[".$this->code."]:".$this->message."<br>"; } public function customFunction() { //為這個異常自定義一個處理方法 echo "按自定義的方法處理出現的這個類型的異常<br>"; } } ?>
自定義異常
<?php try { //使用自定義的異常類捕獲一個異常,並處理異常 $error = '允許拋出這個錯誤'; throw new MyException($error); //創建一個自定義的異常類對象,通過throw語句拋出 echo 'Never executed'; //從這裡開始,try代碼塊內的代碼將不會再被執行 } catch (MyException$e) { //捕獲自定義的異常對象 echo '捕獲異常: '.$e; //輸出捕獲的異常消息 $e->customFunction(); //通過自定義的異常對象中的方法處理異常 } echo '你好呀'; //程序沒有崩潰繼續向下執行 ?>
捕獲多個異常
在try代碼之後,必須至少給出一個catch代碼塊,也可以將多個catch代碼塊與一個try代碼塊關聯使用。那麼使用多個catch就可以捕獲不同的類所產生的異常。注意順序。
2 時間戳
2.1 UNIX時間戳
Unix 時間戳: