【转】PHP的异常处理类Exception的使用及说明
1、首先php5提供了基本的異常處理類,可直接使用
<?php class Exception {protected $message = 'Unknown exception'; // 異常信息protected $code = 0; // 用戶自定義異常代碼protected $file; // 發生異常的文件名protected $line; // 發生異常的代碼行號function __construct($message = null, $code = 0);final function getMessage(); // 返回異常信息final function getCode(); // 返回異常代碼final function getFile(); // 返回發生異常的文件名final function getLine(); // 返回發生異常的代碼行號final function getTrace(); // backtrace() 數組final function getTraceAsString(); // 已格成化成字符串的 getTrace() 信息/* 可重載的方法 */function __toString(); // 可輸出的字符串 } ?>簡單的使用如下:(通過異常,拋出錯誤信息)
try {$error = 'my error!';throw new Exception($error) } catch (Exception $e) {echo $e->getMessage(); }2、我們可以擴展此類,方便我們的使用
class MyException extends Exception {// 重定義構造器使 message 變為必須被指定的屬性public function __construct($message, $code = 0) {// 自定義的代碼// 確保所有變量都被正確賦值parent::__construct($message, $code);}// 自定義字符串輸出的樣式public function __toString() {return __CLASS__ . ": [{$this->code}]: {$this->message}\n";}public function customFunction() {echo "A Custom function for this type of exception\n";} }異常處理的基本思想是代碼在try代碼被調用執行。如果try碼塊出現錯誤,我們可以執行一個拋出異常的處理。某些編程語言,如java,,在特定情況下將自動拋出異常。在php中,異常必須手動拋出。可以使用如下方式拋出一個異常:
Throw new Exception(‘message’,code);
Throw 關鍵字將觸發異常處理機制,它是一個語言結構,而不是一個函數,但是必須給它傳遞一個值。它要求一個接受對象。在最簡單的情況下,可以實例化一個內置的Exception類。
最后,在try代碼之后,必須至少給出一個catch代碼塊。可以將多個catch代碼塊與一個try代碼塊進行關聯。如果每個catch代碼塊可以捕獲一個不同類型的異常,可以使用多個catch代碼塊是有意義的。例如,如果想捕獲Exception類的異常,代碼如下
Catch(Exception $e){//handing exception }Catch代碼捕獲的對象就是導致異常并傳遞給throw語句的對象(被throw 語句拋出)。使用Exception 類的實例,是不錯的選擇。Exception類提供了如下的內置方法:Getcode() —返回傳遞給構造函數的代碼。GetMessage() —返回傳遞給構造函數的消息。getFile() —返回產生異常代碼的文件的路徑getLine() —返回產生異常的代碼所在的行。注意:
3.當一個異常拋出后,catch語句塊可以進行處理也可以不處理
以下是我用戶注冊功能的部分代碼
try{//check forms filled inif(!filled_out($_POST)){throw new Exception('你還沒有填寫表單,請回去填寫');}//check email address not validif(!check_email($email)){throw new Exception('郵件的格式不正確');}//檢查密度的長度是否大于6if(strlen($passwd<6)){throw new Exception('密度的長度應該大于6');}//檢查兩次密碼是否相等if($passwd!=$passwd1){throw new Exception('兩次密碼不一樣,請重新輸入');}//檢查用戶名的長度是否正確if(strlen($username)>16){throw new Exception('用戶名的長度不符,請重新輸入');}} catch(Exception $e){echo $e->getMessage(); //輸出異常信息。}轉載自:http://www.cnblogs.com/zhmt/archive/2012/03/10/2389347.html?和?http://www.cnblogs.com/yangsen/archive/2012/01/30/2331595.html
總結
以上是生活随笔為你收集整理的【转】PHP的异常处理类Exception的使用及说明的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VMware vSphere学习笔记二
- 下一篇: 陈皓谈程序员的升级:职业规划就像软件工程