Php 在执行自定义错误句柄后执行默认异常处理程序
在PHP中,我使用Php 在执行自定义错误句柄后执行默认异常处理程序,php,exception,Php,Exception,在PHP中,我使用set\u exception\u handler函数构建了一个错误处理程序。它正在执行我的自定义异常处理程序。我希望PHP在执行我的处理程序后也执行默认异常处理程序。这是我的密码 function handleException( exception $e){ echo $e->getMessage(); restore_exception_handler(); } set_exception_handler( 'handleException
set\u exception\u handler
函数构建了一个错误处理程序。它正在执行我的自定义异常处理程序。我希望PHP在执行我的处理程序后也执行默认异常处理程序。这是我的密码
function handleException( exception $e){
echo $e->getMessage();
restore_exception_handler();
}
set_exception_handler( 'handleException');
执行了
echo$e->getMessage()
,但即使在使用restore\u exception\u handler
之后,默认的PHP异常处理程序也不会执行。那么,如何使其工作呢?您应该在恢复前一个异常处理程序后触发它
function handleException( exception $e){
echo $e->getMessage();
restore_exception_handler();
throw $e; //This triggers the previous exception handler
}
set_exception_handler( 'handleException');
政府很清楚:
如果在try/catch块中未捕获异常,则设置默认异常处理程序。调用异常处理程序后,执行将停止
之后就没有机会运行任何代码了
但是,您可以明确地称之为:
try {
// some code that throws an Exception
} catch(Exception $e) {
handleException($e);
// .. run custom handler now
}
无需在此处使用
restore\u exception\u handler()
。使用默认异常处理程序是什么意思!我没有想到在处理程序中使用throw
,结果浪费了很多时间