鉴于我已经有一个自定义的PHP错误处理程序,将异常处理程序定义为“转发器”是否有意义,如下所示:
function exception_handler(Exception $e) {
trigger_error($e->getMessage(), E_USER_ERROR);
}
set_exception_handler('exception_handler');
想法是也利用现有的错误处理程序来处理异常,以避免重复相同的代码。从异常处理程序内部触发错误是否会引起一些问题?
最佳答案
完全没有问题。我有相同的设置,我的错误处理程序通过电子邮件向我发送异常和错误信息。
这是我的异常处理程序,我输入了一个我未捕获的异常的错误。这样,我知道它是由异常而不是错误引起的。它还会告诉我由于get_class而引起的异常。
function exception_handler(Exception $e) {
trigger_error('Uncaught ' . get_class($e) . ', code: ' . $e->getCode() . "<br/>\n Message: " . htmlentities($e->getMessage()), E_USER_WARNING);
}
由于我的错误处理程序发送了HTML电子邮件,因此我在异常处理程序中添加了html。您可能要删除它。
关于php - 从异常处理程序中触发错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1434287/