PHP:打印捕获异常,如 Xdebug

tim*_*tim 6 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();
}
Run Code Online (Sandbox Code Playgroud)

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

在此处输入图片说明

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

在此处输入图片说明

我试过echo $exception->xdebug_message;, var_dump($exception);, 和var_dump($exception->xdebug_message);,但都没有奏效。最后一个似乎是我想要的,但我无法让它正常工作:

在此处输入图片说明

有没有办法对捕获的异常使用 xdebug 样式?

Joe*_*Joe 5

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

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

echo '<table>'.$e->xdebug_message.'</table>';
Run Code Online (Sandbox Code Playgroud)


tim*_*tim 1

好的,我在所有 xdebug 函数的列表中找到了解决方案:

xdebug_print_function_stack($exception);
Run Code Online (Sandbox Code Playgroud)