/ PHP

PHP中的错误处理

程序只要在运行,就免不了会出现错误!或早或晚,只是时间问题罢了。

错误很常见,比如Notice,Warning等等 我们往往需要接管错误,自定义错误页面和错误提示或者是进行错误日志的记录。 此时我们往往是用set_error_handler来处理,如下代码

但是, set_error_handler是无法捕捉某些Fatal error的, 你可以去掉上面代码undefined_function() 函数前的注释试一试。 发现错误信息没有经过appError函数处理,直接显示出来了。

这时候我们一般是用register_shutdown_function +error_get_last 的方式进行出来。  但是在 register_shutdown_function 定义的函数 中使用相对地址时需要注意, 这时候相对地址已经变了。 大家可以测试一下下面的代码

大家看看 echo realpath(‘./’) 输出的是什么 。  很诡异吧。  当前目录已经是 php执行文件所在目录了。 所以在这时候 你在register_shutdown_function 定义函数中 进行include 等 文件地址一定要是绝对地址, 不能是相对地址。

另外register_shutdown_function 不会阻止 PHP默认的显示报错行为, 运行上面的代码, 我们可以看到, 默认方式的报错也出现的, 这时候, 注释掉ob_clean(); 这个行代码, 用这种方式就能屏蔽默认报错的显示。

PHP中的错误处理
Share this