在我的 PHP 代码中,我有几种类型的异常。一个是“正常” Exception
,另一个是PDOException
。我正在使用set_exception_handler($handler)
自动捕获异常。
有什么方法可以为异常和 PDOException 获取单独的处理程序?
如果没有,我可以检查处理程序中异常的类型吗?
在我的 PHP 代码中,我有几种类型的异常。一个是“正常” Exception
,另一个是PDOException
。我正在使用set_exception_handler($handler)
自动捕获异常。
有什么方法可以为异常和 PDOException 获取单独的处理程序?
如果没有,我可以检查处理程序中异常的类型吗?
我认为您应该有一个“全局”处理程序和分支。
set_exception_handler(function ($exception) {
if ($exception instanceof PDOException) {
handle_pdo_exception($exception);
return;
}
log($exception);
});
感谢您澄清您的问题。
我认为您是出于错误的假设而问的。
事实上,任何一个正常的异常都需要记录到一个 commonerror_log
并且 PDOexception 必须触发一个向用户显示的通用 500 错误页面。将这些问题分开是没有意义的。因此,您可以使用通用异常处理程序来处理代码中的所有异常事件。