PHP里的try/catch和set_exception_handler的执行顺序
在PHP里,try/catch和set_exception_handler都是用来捕获异常的,但是如果同时定义了这两个的话,谁会先执行呢?
如下代码:
set_exception_handler('myException');
function test($a) {
if ($a > 1) {
throw new Exception('the param is illegal !', 123);
}
echo $a;
}
try {
test(2);
} catch (Exception $e) {
echo 'I am try/catch.';
}
function myException($e) {
echo 'I am set_exception_handler.';
}
输出结果:
I am try/catch.
结论:
set_exception_handler是用来处理所有未被捕获的异常。