【问题标题】:Better error messages for php [duplicate]更好的 php 错误消息 [重复]
【发布时间】:2013-03-13 14:19:06
【问题描述】:

有什么方法可以丰富php中的错误信息吗?我收到了类似的错误

Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 524288 bytes) in /site/lib/Zend/Db/Statement/Pdo.php on line 228

这不是很好。至少调用堆栈会更有帮助。

【问题讨论】:

  • 在这个错误中你有什么不清楚的地方?其实很清楚。您的程序使用的 RAM 超出了允许的范围,并且没有更多的 RAM 可供使用。为它分配更多内存。
  • 你能得到调用堆栈...试过搜索@php.net? debug_backtrace php.net/manual/en/function.debug-backtrace.php 其他获取良好信息的方式是创建您自己的 ExceptionHandlers... 此处示例:edmondscommerce.co.uk/php/…
  • 我认为错误信息非常明确且切中要害。如果它说“哎呀,亲爱的,你试图拥有太多的记忆。那里再试一次。对不起。”。只是处理它。要么让脚本占用更少的内存,要么让它拥有更多的内存。

标签: php


【解决方案1】:

如果您想要更详细的信息,那么有一种方法可以在函数中截获错误消息。例如,您可以在其中抛出ErrorException。这会给你更多的细节。

试试下面的方法(catchException 是可选的)

function exception_error_handler($errno, $errstr, $errfile, $errline )
{
    if (error_reporting() === 0)
    {
        return;
    }

    throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
}

set_error_handler("exception_error_handler");

function catchException($e)
{
    // Do some stuff
}

set_exception_handler('catchException');

【讨论】:

    【解决方案2】:

    尝试安装xdebug,看看various settings ...

    【讨论】:

      【解决方案3】:

      PHP 错误对我来说很清楚,但如果您想要非常详细的信息,为什么不编写异常类并自定义消息,包括异常消息和您自己的详细信息。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-24
        • 1970-01-01
        • 1970-01-01
        • 2018-03-06
        相关资源
        最近更新 更多