0

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

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

4

2 回答 2

4

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

set_exception_handler(function ($exception) {
  if ($exception instanceof PDOException) {
    handle_pdo_exception($exception);
    return;
  }
  log($exception);
});
于 2013-05-29T10:02:25.967 回答
2

感谢您澄清您的问题。

我认为您是出于错误的假设而问的。

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

于 2013-05-29T10:07:32.463 回答