tp5 ThinkPhp5 自訂異常處理類

來源:互聯網
上載者:User

標籤:檔案目錄   代碼   cep   存在   img   2-2   預設   就會   異常處理   

在項目的開發過程中異常拋出尤為重要不僅能夠做出友好提示協助掩蓋我們偉大的程式員們尷尬的瞬間,還能做到提示開發人員代碼白編寫的錯誤,下面進行自訂異常拋出類,純屬個人理解,希望大家指正

首先在架構中我們可以自訂目錄結構用來做異常類的儲存位置例如檔案目錄為以下紅框中

定義目錄結構後闡述一下我理解的異常類的工作流程,見名知意既然是異常拋出那麼只有在代碼出現問題的時候或者是邏輯出現異常的時候會進行拋出,那麼我認為這就會出現兩種情況,

第一種是使用者傳輸的參數或者使用者操作的流程有問題這種情況下並不是我們的開發的代碼或者是商務邏輯出現的致命錯誤,直白的將這種情況就是使用者的請求沒有返回相應的資料

第二種是我們的代碼存在問題,或者是伺服器上面的問題,但是這個問題我們是不需要使用者知道的,在這種情況下我們即需要給出使用者的友好提示,還需要知道我們的代碼具體是哪裡出現了問題所以這種情況下我們就需要記錄日誌

分析了兩種情況之後首先建立應對第一種情況的類,命名為BaseException.php在這個類中需要定義的很簡單就是對應第一種情況的友好資訊

資訊中包括的是拋出異常的http狀態代碼、異常的資訊、自訂異常的狀態代碼(可選)

但是BaseException.php需要繼承Exception雖然我們是自己定義的異常類但是還是需要遵循規律,既然要拋出異常,就需要有捕獲異常,BaseException.php代碼如下

下面看一下官方手冊

很明顯官方已經指出我們接下來要做的

定義Z_Exception.php用來繼承Handle類並且重寫render方法,這樣我們就可以將我們自訂的資訊進行拋出,並且在這個類中穿插判斷用來應對第二種異常的情況

至此存在一個值得注意的問題在config.php中的問題

本身此處為空白但我們已經自己定義了異常類,如果沒有更改的話會導致致命錯誤這裡大家應該值得注意一下

 

處理之後繼續下一步添加日誌

通過入口文見index.php可以追蹤到架構的核心檔案start.php開啟之後看到載入base.php然後開啟base.php就可以看到檔案的配置項找到log查看檔案的路徑

由此可以定位到log檔案的路徑

由此我們更改一下log的路徑方便我們以後管理,在index.php中重新定義LOG_PATH的路徑

變更檔的路徑後我們應該將架構中預設的記錄日誌的方式變更可以參考官方的文檔

https://www.kancloud.cn/manual/thinkphp5/118126

更改架構中的日誌的記錄方式就是在config.php尋找Log模組,將日誌的type由File更改為test

既然日誌是為了應對生產環境下的問題那麼我在代碼編寫的時候就應該在

 

之後進行日誌的記錄,但是要是進行日誌的記錄我們就應該使用架構中的Log類

在Z_Exception.php中定義方法用來寫入日誌

然後再調用

這樣就完成了自訂的類和自訂的記錄檔

以上純屬個人理解,不足之處望大家見諒!!!!

 

tp5 ThinkPhp5 自訂異常處理類

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.