Yii 內建了一個error handler錯誤處理器,它使錯誤處理更方便, Yii錯誤處理器做以下工作來提升錯誤處理效果:
所有非致命PHP錯誤(如,警告,提示)會轉換成可取得例外; (建議學習:yii教學)
#異常和致命的PHP錯誤會被顯示, 在偵錯模式會顯示詳細的函數呼叫堆疊和原始碼行數。
支援使用專用的控制器操作來顯示錯誤;
支援不同的錯誤回應格式;
error handler 錯誤處理器預設為啟用, 可透過在應用的入口腳本中定義常數YII_ENABLE_ERROR_HANDLER來停用。
使用錯誤處理器
error handler 註冊成一個名稱為errorHandler應用程式元件, 可以在應用程式設定中配置它類似如下:
return [ 'components' => [ 'errorHandler' => [ 'maxSourceLines' => 20, ], ], ];
使用如上代碼,異常頁面最多顯示20個原始碼。
因此,錯誤處理器將所有非致命PHP錯誤轉換成可獲取異常,所以可以使用以下程式碼處理PHP錯誤:
use Yii; use yii\base\ErrorException; try { 10/0; } catch (ErrorException $e) { Yii::warning("Division by zero."); } // execution continues...
如果你想顯示錯誤頁面告訴使用者請求是無效的或無法處理的, 可簡單地拋出一個HTTP exception異常, 如yii\web\NotFoundHttpException。
錯誤處理器會正確地設定回應的HTTP狀態碼並使用適當的錯誤檢視頁面來顯示錯誤訊息。
use yii\web\NotFoundHttpException; throw new NotFoundHttpException();
以上是yii框架怎麼錯誤處理的詳細內容。更多資訊請關注PHP中文網其他相關文章!