PHP中的錯誤處理

2022-09-23 14:27:06 字數 1326 閱讀 5907

程式只要在執行,就免不了會出現錯誤!或早或晚,只是時間問題罷了。

錯誤很常見,比如notice,warning等等。此時一般使用set_error_handler來處理:

<?php

set_error_handler(function($errno, $errstr, $errfile, $errline) );

// notice: use of undefined constant strlen

strlen;

// warning: strlen() expects exactly 1 parameter, 0 given

strlen();

?>

具體能做些什麼呢?統一管理錯誤日誌,或者呈現乙個相對友好的錯誤提示頁面等等。

但需要注意的是set_error_handler無法捕捉某些fatal error,比如下面這個錯誤:

<?php

set_error_handler(function($errno, $errstr, $errfile, $errline) );

// fatal error: call to undefined function undefined_function()

undefined_function();

?>

不過我們真的就一點辦法都沒有了麼?當然不是,我們不僅有辦法,而且還有好幾種:

第一種:ob_start + error_get_last

<?php

ob_start(function($buffer)

return $buffer;

});// fatal error: call to undefined function undefined_function()

undefined_function();

?>

第二種:register_shutdown_function + error_get_last

<?php

register_shutdown_function(function()

});// fatal error: call to undefined function undefined_function()

undefined_function();

?>

此外,所有的parse error都無法捕捉,不過換個角度看,解析錯誤的**本身就不應該發布,甚至都不應該進入版本庫,關於這一點,我以前寫過一篇《subversion鉤子》,裡面介紹了如何利用subversion鉤子做**語法檢查。

似乎應該順水推舟接著寫點介紹異常的文字才好,可惜時間不早了,還是洗洗睡吧。

作者 老王

PHP中的錯誤處理

一 php的錯誤級別 二 調整php錯誤報告級別 php中,調整錯誤報告級別的方式有兩種 1.修改php.ini檔案的配置項。a 會導致在當前伺服器環境下所有php檔案都受其影響。b 如果 更換伺服器,會導致配置檔案全部失效,需要重新配置。所以實際開發過程中,並不推薦使用此方式!2.在 中使用ini...

PHP中的錯誤處理

程式只要在執行,就免不了會出現錯誤!或早或晚,只是時間問題罷了。錯誤很常見,比如notice,warning等等。此時一般使用set error handler來處理 set error handler function errno,errstr,errfile,errline notice use...

PHP 錯誤處理

在 php 中,預設的錯誤處理很簡單。一條訊息會被傳送到瀏覽器,這條訊息帶有檔名 行號以及一條描述錯誤的訊息。在建立指令碼和 web 應用程式時,錯誤處理是乙個重要的部分。如果您的 缺少錯誤檢測編碼,那麼程式看上去很不專業,也為安全風險敞開了大門。本教程介紹了 php 中一些最為重要的錯誤檢測方法。...