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