當前位置:首頁 > PHP教程 > php應用 > 列表

PHP異常處理(Exception)什么情況下使用?

發布:smiling 來源: PHP粉絲網  添加日期:2016-08-30 14:48:49 瀏覽: 評論:0 

異常處理雖然說使用簡單但是我們應該在哪些情況下使用異常處理呢,今天小編就來為各位介紹關于php異常處理的使用方法了,具體的操作細節如下所示.

首先看一段官方解釋(異常處理),如上,其最后一句話說明解釋異常與PHP錯誤的關聯解決上.

下面來看異常與PHP錯誤機制各有什么優缺點?應該如何使用?

根據PHP官方說明PHP的錯誤機制(錯誤碼)出現于異常之前,用于輸入PHP的錯誤信息,從衍生性來看異常這個概念可以看成是自定義錯誤機制,用于彌補PHP錯誤機制(錯誤碼)的不足。

這就說明了一點在信息量方便,異常, 可以包含更豐富的錯誤信息, 比如錯誤信息, 錯誤碼, 錯誤的行數, 文件, 甚至出錯上下文, 避免錯誤信息不豐富的問題。

此次是性能上,對于異常處理的性能問題,這里附圖說明,如下:

注: 圖中有一處不嚴謹, 即在確定是否最后一個catch塊的時候, 會同時判斷(is_a), 如果是才進入最后一個catch塊執行。

性能和方便, 往往是一個矛盾體,根據場景,自己來選擇。

最后一個要討論的是強迫癥問題,如果所有錯誤都用異常,那么你會看到滿屏的try{}catch{},錯誤很多,有自己決定怎么解決。這就是現在很多框架下會有自定義異常的擴展需求(太多可能的Uncaught Exception),我想意思可能是,交給用戶自己設計。

注:使用try{}catch{}不能鋪貨WARNING錯誤,需要自己定義捕獲錯誤的函數,例如:

  1. set_error_handler(function () {  
  2.     throw new Exception('Ach!');  
  3. });  
  4.    
  5. try {  
  6.     $result = 4 / 0;  
  7. } catch( Exception $e ){  
  8.     echo "Divide by zero, I don't fear you!".PHP_EOL;  
  9.     $result = 0;  
  10. }  //phpfensi.com 
  11.    
  12. restore_error_handler(); 

Tags: PHP異常處理 Exception

分享到:

福利彩票25选5开奖结果