程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP異常詳解

PHP異常詳解

編輯:關於PHP編程

PHP的異常是什麼?
PHP 5 提供了一種新的面向對象的錯誤處理方法。異常處理用於在指定的錯誤(異常)情況發生時改變腳本的正常流程。這種情況稱為異常。
 
一般使用方法:
[php] 
<?php 
function test() { 
    throw new Exception("異常啦"); 

try { 
     test(); 
} catch (Exception $e) { 
 echo $e->getMessage(); 

throw new Exception('XXX') : 拋出一個異常
try  : 使用異常的函數應該位於 "try" 代碼塊內。如果沒有觸發異常,則代碼將照常繼續執行。但是如果異常被觸發,會拋出一個異常。
Catch:代碼塊會捕獲異常,並創建一個包含異常信息的對象
自定義異常類:
[php]
class myException extends Exception { 
 public function errorMessage() { 
    $errorMsg = 'Error on line '.$this->getLine().' in '.$this->getFile() 
  .': <b>'.$this->getMessage().'</b> is not a valid E-Mail address'; 
    return $errorMsg; 
  } 

 
 
try { 
  throw new myException($email); 
}catch (myException $e){ 
 echo $e->errorMessage(); 

myException類是一個自定義的異常類,必須繼承Exception
Exception是一個PHP自帶的內置的異常類,默認情況下會使用PHP默認的內置異常類,但是我們可以通過自定義的方式,自定義成滿足自己需求的異常類。
使用自定義異常類的時候,throw new myException 拋出異常也需要拋出自定義的異常類類名
catch的時候也需要捕獲自定義的異常類
如果拋出了異常而不捕獲處理的話,就會發生PHP代碼報錯,如下:
[sql] 
Fatal error: Uncaught exception 'myException' in D:\AppServ\www\cctv\trunk\index.php:12 Stack trace: #0 {main}  
thrown in D:\AppServ\www\cctv\trunk\index.php on line 12 

PHP默認異常類詳細:
[php] 
class exception 

    protected $message = 'Unknow exception'; //自定義的異常信息 
    protected $code = 0; //定義的異常代碼 
    protected $file; //發生異常的PHP程序名 
    protected $line; //發生異常的PHP行號 
    //用於傳遞用戶自定義異常信息和用戶自定義異常代碼的構造函數 
    function __construct($message=null,$code=0); 
    final function getMessage(); 
    final function getCode(); 
    final function getFile(); 
    final function getLine(); 
    final function getTrace(); //以數組形式返回異常傳遞的路線 
    final function getTraceAsString(); //返回格式化成字符串的getTrace函數信息 
    function __toString(); //可重載,用於返回可輸出的字符串 

可以看到PHP默認異常類中有很多自定義變量和方法
$e->getMessage 一般是獲取錯誤信息
$e->getCode() 一般是獲取錯誤碼
$e->getFile() 獲取錯誤的文件信息
$e->getLine() 獲取錯誤行數
$e->getTrace() 異常經過的文件路徑
__toString() 一般可以重載,用於返回可輸出的字符串
PHP異常類的作用:
捕獲異常,一般可以在MYSQL鏈接不上,或者業務邏輯錯誤的時候,拋出異常,在代碼最頂端接收。
異常分析處理。可以在出異常的時候,捕獲到異常的錯誤信息,寫入日志。
可以返回友好化的提示信息,例如WEB端可以返回頁面形式,也可以在AJAX端返回JSON數據格式。
原則:如果異常拋出了,就必須捕獲它,否則會PHP報錯。
 

作者:initphp

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved