php 错误和异常处理
PHP错误和异常是两个系统,内核使用的是错误系统,用户请使用后加入的异常系统。
致命错误:会导致脚本退出的错误:E_ERROR, E_USER_ERROR, E_CORE_ERROR, E_COMPILE_ERROR, E_RECOVERABLE_ERROR, E_PARSE
非致命错误:E_NOTICE, E_WARNING
使用 set_error_handler() 捕获错误,然后throw,可以将错误变成异常,然后在try - catch 结构中捕获
使用 set_exception_handler() 可以捕获未catch的异常,可以用作框架中的错误处理机制
使用 register_shutdown_function() 和 error_get_last() 可以记录导致退出的错误信息
register_shutdown_function(function() {
if($e = error_get_last()) {
error_log(print_r($e, true));
}
})
评论