首頁 > 後端開發 > php教程 > php異常、錯誤處理機制

php異常、錯誤處理機制

WBOY
發布: 2016-08-08 09:19:30
原創
842 人瀏覽過
 

php異常、錯誤處理機制


在實際開發中,錯誤及異常捕捉僅靠try{}catch()是遠不夠的。 所以引用以下幾中函數。

我們先來說異常:

首先要明白異常跟錯誤是不一樣的,異常是出現正常邏輯之外的情況,而錯誤是指運行時出錯了,比如,使用了一個未定義的變數等,異常需要拋出(throw)才能被捕捉到,而錯誤會導致程式執行終止

1、通常處理異常的方式是使用try{}catch{}去捕捉有throw拋出的異常

[ php] view plaincopy

  1. try{  
  2.     throw ;  }  catch(Exception $e
  3. ){  
  4.     echo $e
  5. ->getMessage(), ->getTraceAsString();  
  6. }  2、透過set_exception_handler函數設定異常處理函數,在這種情況下,即使沒有try{}catch{},throw捕捉 [php] view plaincopy
  7. set_exception_handler(
  8. 'exceptionHandler'
  9. );  
(
"kkkkkkkkkkkkkkkk");  

  1. function  exceptionHandler(Exception $exception){  
  2.      $exception->getMessage();  }  
  3. 接下來討論錯誤:
  4. 通常程式出錯了,php會輸出出錯的資訊來幫助調試,但是這個資訊的輸出是可以透過函數error_reporting()來控制的。在php中錯誤是分等級和種類的,以下是所有錯誤種類的說明:E_ALL - 所有的錯誤和警告(不包括E_STRICT)E_ERROR - 致命性的運行時錯誤E_WARNING - 運行時警告(非致命性錯誤)E_PARSE - 編譯時解析錯誤E_NOTICE - 運行時提醒(這些經常是你代碼中的bug引起的,也可能是有意的行為造成的。)E_STRICT - 編碼標準化警告,允許PHP建議如何修改程式碼以確保最佳的互通性向前相容性。 E_CORE_ERROR - PHP啟動時初始化過程中的致命錯誤E_CORE_WARNING - PHP啟動時初始化過程中的警告(非致命性錯)E_COMPILE_ERROR - 編譯時致命性錯
  5. E_COMPILE_WARNING - 編譯時警告(非致命性錯E_USER_ERROR - 使用者自訂的錯誤訊息
  6. E_USER_WARNING - 使用者自訂的警告訊息E_USER_NOTICE - 使用者自訂的提醒訊息
  7. 如果設定了error_reporting(E_NOTICE),那麼一般程式輸出的資訊,那麼一般程式碼的時候只要設定error_reporting(E_ALL&!E_WARNING)就行了上面我們看到有一種錯誤叫用戶自訂的錯誤訊息,這是什麼呢?我們先來看一個例子[php] view plaincopy
    1. set_error_handler('errorHandler');  
    2. trigger_error(trigger_error(
    3. aaaa" function errorHandler($errno, $errstr){  
    4. "white-space:pre" USER_ERROR){   "white-space:pre">      
    5. echo
    6. ;  "white-space:pre">  }   }  
    7. 輸出結果:[php] view plaincopy
    8. innnnnnnni:aaaaaaasssssss  
    9. trigger_error()就是用來拋出使用者自訂錯誤訊息的函數,透過這個訊息能被拋出錯誤的函數嚴重的邏輯問題
    10. 上面的程式我們看到,當程式出錯時,除了讓Php預設輸出出錯訊息外,我們還能設定自己的錯誤處理函數,設定的方法就是
    set_error_handler(),下面來來看個例子

    [php] view plaincopy

    1. set_error_handler('errorHandler'
    2. );  


      

    echo

     

    $ cc
    1. ;//$cc沒有定義,echo會出錯  
    2. function ){       if
    3. (
    4. $errno==E_NOTICE){        $errstr;  
    5.     }   }  輸出結果:ddddddddddddinnnnnnnni:Undefined variable: cc
    6. 以上就介紹了php異常、錯誤處理機制,包含了面向的內容,希望對PHP教學有興趣的朋友有幫助。
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板