【问题标题】:Exception messages and already headers sent error while developing开发时异常消息和已经发送的标头错误
【发布时间】:2011-10-21 11:33:18
【问题描述】:

在我的开发机器中,我将 error_reporting 设置为 E_ALL | E_STRICT 以查看我的代码中发生的所有错误消息。 但是当我处理捕获的异常时:

try {
   throw new MyException('Exception message.');
} catch (MyException $e) {
    // code that handles the exception but without print anything
}

PHP 总是显示错误信息:

MyException: Exception message in file://path/to/failed/file.php

之后 PHP 无法发送新的标头。

您知道一些方法来避免自动生成的 PHP 错误被引发但被捕获的 display_errors=Onerror_reporting=E_ALL |E_STRICT 异常显示吗?

【问题讨论】:

    标签: php exception


    【解决方案1】:

    您可以设置自定义错误处理程序并将错误记录到文件或类似文件中。这方面的信息可以在这里找到:http://php.net/manual/en/function.set-error-handler.php

    【讨论】:

      【解决方案2】:

      如果您打印消息,将发送标题,句号。如果您不需要打印它,请不要。相反,您可以记录它。

      【讨论】:

      • 我没有打印消息,是打印消息的 PHP 错误处理程序。我想避免这种情况。
      • 来自您的问题:echo $e->getMessages();。我是不是误会了什么?
      • 代码为:try { throw new MyException('Exception message.'); } catch (MyException $e) { //处理该错误但不打印任何内容的 php 代码 }
      【解决方案3】:

      好吧,那是我的错。

      如果你安装了 xdebug 并且你的 xdebug 配置有 xdebug.show_exception_trace = 1

      总是引发异常 xdebug 将转储堆栈跟踪。

      【讨论】:

        猜你喜欢
        • 2018-02-23
        • 1970-01-01
        • 2018-02-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-11
        相关资源
        最近更新 更多