Are there exceptions that don’t stop scripts execution, and exceptions that do? If there aren’t…how to differ converted errors?
如果被捕获,异常不会停止脚本执行.要识别转换后的错误:
try {
// ...
} catch (ErrorException $e) {
// converted error (probably)
} catch (Exception $e) {
// another kind of exception; this basically catches all
}
要么:
function handle_exception(Exception $e)
{
if ($e instanceof ErrorException) {
// converted error (probably)
} else {
// another kind of exception
}
}
set_exception_handler('handle_exception');
请注意,任何代码都可以抛出ErrorException,但它只是为了在set_error_handler()注册函数中转换常规错误.
Converting errors into exception is done by calling set_error_handler() and throw new ErrorException() in there…What’s next? set_exception_handler() is called automagically?
如果错误处理函数中抛出的ErrorException未在代码中的任何其他位置捕获,则将调用已注册的异常处理程序(使用set_exception_handler()设置).