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是用来处理所有未被捕获的异常。