habby's blog - php致命错误
type: channel
link: https://www.habby.top/tag/php%E8%87%B4%E5%91%BD%E9%94%99%E8%AF%AF/
items: PHP捕获错误||PHP捕获致命错误||PHP捕获非致命错误

PHP捕获错误||PHP捕获致命错误||PHP捕获非致命错误
type: item
date: 2016-04-15T18:12:00+08:00
description: php是可以捕获致命的错误的在很多场景中,我们涉及到相对mysql的错误日志进行记录,又不想直接直接写php错误日志文件,因为多服务器的情况下,写入文件在日志分析上还是有一定的问题.其实涉及到两个函数set_error_handler — 设置一个用户定义的错误处理函数 但是这个函数是有缺陷的,在官方的文档中有如下的内容以下级别的错误不能由用户定义的函数来处理： E_ERROR 、 E_PARSE 、 E_CORE_ERROR 、 E_CORE_WARNING 、 E_COMPILE_ERROR 、 E_COMPILE_WARNING ，和在 调用 set_error_handler() 函数所在文件中产生的大多数 E_STRICT 。 所以如果程序出现了致命错误,或者语法错误,这个函数是没有办法处理的,register_shutdown_function - register_shutdown_function — Register a function for execution on shutdown 这个函数其实就是在php脚本执行完之后调用一个函数,我们就可以用register_shutdown_function + error_get_last 2个函数来捕获致命错误[...]