PDO的单独异常处理程序

时间:2013-05-29 09:57:53

标签: php pdo exception-handling

在我的PHP代码中,我有几种类型的异常。一个是“普通”Exception,另一个是PDOException。我正在使用set_exception_handler($handler)自动捕获异常。

有没有办法可以为Exception和PDOException获取单独的处理程序?
如果没有,我可以在处理程序中检查异常的类型吗?

2 个答案:

答案 0 :(得分:4)

我认为你应该有一个“全局”处理程序和分支。

set_exception_handler(function ($exception) {
  if ($exception instanceof PDOException) {
    handle_pdo_exception($exception);
    return;
  }
  log($exception);
});

答案 1 :(得分:2)

感谢您澄清您的问题。

我认为你是在猜错假设。

事实上,要么将正常异常记录到公共error_log,要么PDOexception必须触发向用户显示的通用500错误页面。将这些问题分开是没有意义的。因此,您可以使用公共异常处理程序来处理代码中的所有异常事件。