酷知百科網

位置:首頁 > 遊戲數碼 > IT技術

PHP如何自訂錯誤處理?

IT技術2.28W

在做php開發時,我們開發的程序有時會出錯,也許是代碼的問題,又或者是用戶輸入的數據有問題,如果我們不對錯誤做定製,php就會顯示一個比較醜陋的錯誤提示,而且會暴露我們的程序資訊。那麼我們該如何自訂錯誤處理?

操作方法

(01)先看下PHP默認的錯誤提示,我們先寫一個有問題的代碼,除法運算我們除以0,大家都知道除法是不能除0的,程序也知道這個規則,所以它會報錯。

PHP如何自訂錯誤處理?

(02)頁面執行後,顯示了一個醜陋的錯誤資訊,而且把代碼檔案給暴露出來了。

PHP如何自訂錯誤處理? 第2張

(03)我們應該避免這種情況,自訂錯誤處理,讓出錯資訊更友善。可以調用php的set_error_handler函數,這個函數接收一個字元串參數,指明一個函數來自訂錯誤處理。

PHP如何自訂錯誤處理? 第3張

(04)接着我們來定義這個錯誤處理的函數。displayError函數裏,我們重新對錯誤資訊進行了包裝輸出。根據不同級別($errorNo)的錯誤,顯示不同的資訊。

PHP如何自訂錯誤處理? 第4張

(05)現在再次執行頁面,看下報錯資訊是怎樣顯示的。如圖,可以看到現在的報錯資訊比較友善了。(你可以對這個報錯資訊做更美觀的設計,這裏只做示例。)

PHP如何自訂錯誤處理? 第5張

(06)除了程序在執行時發現問題,觸發錯誤外,我們還可以自己觸發錯誤處理。比如是業務邏輯上的問題,而不是代碼問題,我們也可以觸發錯誤處理。調用php的trigger_error函數就可以了,這個函數接收二個參數,第一個是錯誤資訊,第二個是錯誤的級別。代碼如圖

PHP如何自訂錯誤處理? 第6張

(07)執行後,看下現在的報錯資訊,如圖,成功觸發了錯誤處理。

PHP如何自訂錯誤處理? 第7張