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

在PHP中,我使用
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
,结果浪费了很多时间