时间:2021-05-26
Fatal error 一般是不需要捕获的, 但是在一个复杂的程序中, 如果偶然出现内存不足导致fatal error就难以处理了.
比如. fatal error 出在MySQL类中fetch的时候. 这个时候就很难定位到真正问题所在了.
PHP异常处理中 可以通过set_error_handler来捕获. 但是却只能捕获 NOTICE/WARNING级别的错误, 对于E_ERROR是无能为力的.
register_shutdown_function 能解决set_error_handler的不足.
通过此函数注册好程序结束回调函数, 就可以捕获平时捕获不到的错误了. 再通过 error_get_last 对错误进行判断. 就容易找出难以定位的问题了.
复制代码 代码如下:
function shutdown_function()
{
$e = error_get_last();
print_r($e);
}
register_shutdown_function('shutdown_function');
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
PS:1.捕获PHP语法错误2.严重错误用正常的set_error_handle无法捕获此两类错误,这是捕获此类错误的技巧复制代码代码如下://test.php
set_error_handler()不能捕获致命错误(具体错误类型见手册)。所以需要如下方法:
ASP.NET提供了三种用于在出现错误时捕获和响应错误的主要方法:page_error事件、application_error事件以及应用程序配置文件(Web.
PHP中通过trigger_error触发PHP错误示例【错误抑制符@】除了php.ini中error_reporting和display_errors的设置、
本文实例讲述了php配置错误日志的方法。分享给大家供大家参考,具体如下:php.ini:;错误日志log_errors=On;显示错误display_error