PHP:打印像Xdebug一样的异常

时间:2015-04-06 12:58:13

标签: php exception xdebug

我有一个PHP函数,当我发现异常时我会调用它。它接受该异常作为可选参数,因此它可以显示它以用于调试目的:

public static function notFound($resource, \Exception $exception = null) {
    // [... normal error handling ...]

    if (DEBUG && $exception != null) {
        echo '<br><br><h2>Stacktrace:</h2>';
        print_r($exception);          
    }
    die();
}

我想要显示此异常的方式与使用xdebug显示未捕获的异常和警告的方式相同(使用CSS和HTML设置样式,可能使用不同的颜色方案)。像这样(由echo $exception->getTrace();创建):

enter image description here

如果我使用print_r($exception);我得到了这个,它似乎至少包含了xdebug所需的一些输出:

enter image description here

我尝试了echo $exception->xdebug_message;var_dump($exception);var_dump($exception->xdebug_message);,但都没有效果。最后一个似乎是关闭我想要的,但我不能让它正常工作:

enter image description here

有没有办法将xdebug样式用于捕获的异常?

2 个答案:

答案 0 :(得分:1)

好的,我在all xdebug functions列表中找到了一个解决方案:

xdebug_print_function_stack($exception);

答案 1 :(得分:0)

在这里回答:https://stackoverflow.com/a/24768176/1286814

简而言之,您只需要将xdebug_message包装在表格中:

echo '<table>'.$e->xdebug_message.'</table>';