网站开发中,需要针对异常和错误的捕捉,来帮助程序开发者进行bug的修改及网站错误日志记录或者呈现一个相对有好的错误页面.
如何可以统一管理这些异常和错误? 下面是我准备使用的处理方式:
// 捕捉错误,抛出异常
set_error_handler(function($errno, $errstr, $errfile, $errline) {
throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
});
// 捕捉undefined function 错误, 抛出异常
register_shutdown_function(function() {
if ($error = error_get_last()) {
throw new ErrorException($error['message'], 0, $error['type'], $error['file'], $error['line']);
}
});
// 统一捕捉异常
set_exception_handler(function($e) {
if ($e instanceof ErrorException) {
// 错误抛出的异常
} elseif ($e instanceof Exception) {
// 真正的异常
}
});