搜尋
首頁php框架YIIyii2自訂錯誤處理

yii2自訂錯誤處理

Dec 14, 2019 am 09:34 AM
yii2

yii2自訂錯誤處理

在Yii2 使用中,我們發現一但程式出現錯誤,Yii2 就能自動顯示其專用的錯誤提示介面,和我們寫原生態時出現的錯誤提示介面完全不一樣。

它究竟是怎麼做到的呢:是在哪裡設定監聽的?亦或在哪裡用的try catch? 」。                              (建議學習:yii架構

#時自動上呼叫程式有自己使用時, ,在其啟動的時候,使用PHP 內建的set_error_handler 將自己的錯誤處理註冊進步並關閉PHP 自身的錯誤顯示。

##Yii2 錯誤自訂處理

在官方教學中,它告訴我們要開啟自訂的錯誤,需要進行如下組態元件:

return [
    // ...
    
    'components' => [
        // ...
        
        'errorHandler' => [
            'errorAction' => 'site/error',
        ],
    ]
    
    // ...
];

Yii2 錯誤核心處理方法

在Yii2錯誤自訂處理中我們了解了Yii2 錯誤註冊的原則並知道錯誤的發生後,Yii2 將呼叫yii\web\ErrorHandler 類別物件的handleException 和handleError 方法。

其實yii\web\ ErrorHandler 類別中並沒有handleException 和handleError 方法,但是在其基底類別yii\base\ErrorHandler 有,這兩個函數最終都會呼叫yii\web\ErrorHandler 的renderException 方法,程式碼如下:

# yii\web\ErrorHandler
/**
 * Renders the exception.
 * @param \Exception $exception the exception to be rendered.
 */
protected function renderException($exception)
{
    // ...
    // 注意:控制错误是否能自定义的关键
    // !YII_DEBUG 表示了如果你现在是在 Debug 模式下,那么不能自定义错误
    // 即使你配置了组件的 'errorHandler' => ['errorAction' => 'site/error'] 参数
    $useErrorView = $response->format === Response::FORMAT_HTML && (!YII_DEBUG || $exception instanceof UserException);
    // 传递到自定义错误处理方法
    if ($useErrorView && $this->errorAction !== null) {
        $result = Yii::$app->runAction($this->errorAction);
        if ($result instanceof Response) {
            $response = $result;
        } else {
            $response->data = $result;
        }
    }
    
    // ...
}

在最終的錯誤顯示方法 renderException 我們可以看出:自訂的錯誤需要在非DEBUG 模式下才能生效

以上是yii2自訂錯誤處理的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
YII的社區:支持和資源YII的社區:支持和資源Apr 16, 2025 am 12:04 AM

Yii社區提供了豐富的支持和資源。 1.訪問官方網站和GitHub獲取文檔和代碼。 2.利用官方論壇和StackOverflow解決技術問題。 3.通過GitHubIssues報告bug和提出建議。 4.使用文檔和教程學習Yii框架。

YII:網絡開發的強大框架YII:網絡開發的強大框架Apr 15, 2025 am 12:09 AM

Yii是一個高性能的PHP框架,專為快速開發和高效的代碼生成設計。其核心特性包括:MVC架構:Yii採用MVC架構,幫助開發者將應用邏輯分離,使代碼更易維護和擴展。組件化和代碼生成:通過組件化和代碼生成,Yii減少開發者的重複工作,提高開發效率。性能優化:Yii使用延遲加載和緩存技術,確保高負載下的高效運行,並提供強大的ORM功能簡化數據庫操作。

YII:快速開發框架YII:快速開發框架Apr 14, 2025 am 12:09 AM

Yii是一個基於PHP的高性能框架,適用於快速開發Web應用。 1)它採用MVC架構和組件化設計,簡化開發過程。 2)Yii提供了豐富的功能,如ActiveRecord、RESTfulAPI等,支持高並發和擴展。 3)使用Gii工具可以快速生成CRUD代碼,提高開發效率。 4)調試時,可檢查配置文件、使用調試工具和查看日誌。 5)性能優化建議包括使用緩存、優化數據庫查詢和保持代碼可讀性。

YII的當前狀態:查看其受歡迎程度YII的當前狀態:查看其受歡迎程度Apr 13, 2025 am 12:19 AM

yiiremainspularbutislessfavoredthanlaravel,withabout14kgithubstars.itexcelsinperformanceandactiverecord,buthasasteperlearningcurveandasmallerecosystem.it'sidealfordealfordealfordEvelforkerfordEvelforkerplovelfordEvelforkerporporporporporporporporizatized efferporization effervastecoseposevastecosystecystemystem。

yii:解釋的關鍵特徵和優勢yii:解釋的關鍵特徵和優勢Apr 12, 2025 am 12:15 AM

Yii是一個高性能的PHP框架,其獨特之處在於組件化架構、強大的ORM和出色的安全性。 1.組件化架構讓開發者能靈活拼裝功能。 2.強大的ORM簡化了數據操作。 3.內置多種安全功能,確保應用安全。

Yii的架構:MVC等Yii的架構:MVC等Apr 11, 2025 pm 02:41 PM

Yii框架採用MVC架構,並通過組件、模塊等增強其靈活性和擴展性。 1)MVC模式將應用邏輯分為模型、視圖和控制器。 2)Yii的MVC實現通過動作細化請求處理。 3)Yii支持模塊化開發,提升代碼組織和管理。 4)使用緩存和數據庫查詢優化可提升性能。

YII 2.0深水潛水:性能調整與優化YII 2.0深水潛水:性能調整與優化Apr 10, 2025 am 09:43 AM

提升Yii2.0应用性能的策略包括:1.数据库查询优化,使用QueryBuilder和ActiveRecord选择特定字段和限制结果集;2.缓存策略,合理使用数据、查询和页面缓存;3.代码级优化,减少对象创建和使用高效算法。通过这些方法,可以显著提升Yii2.0应用的性能。

YII RESTFUL API開發:最佳實踐和身份驗證YII RESTFUL API開發:最佳實踐和身份驗證Apr 09, 2025 am 12:13 AM

在Yii框架中開發RESTfulAPI可以通過以下步驟實現:定義控制器:使用yii\rest\ActiveController來定義資源控制器,如UserController。配置認證:通過添加HTTPBearer認證機制來確保API的安全性。實現分頁和排序:使用yii\data\ActiveDataProvider來處理複雜的業務邏輯。錯誤處理:配置yii\web\ErrorHandler來定制錯誤響應,如認證失敗時的處理。性能優化:利用Yii的緩存機制來優化頻繁訪問的資源,提高API性能。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器