禁用Xdebug转储捕获的异常

nuq*_*qsa 7 php debugging exception xdebug

默认情况下,Xdebug将转储任何异常,无论它是否被捕获:

try {
    throw new Exception();
}
catch (Exception $e) {
}
echo 'life goes on';
Run Code Online (Sandbox Code Playgroud)

启用XDebug并且默认设置这段代码实际上会输出如下内容(格式正确):

( ! ) Exception: in /test.php on line 3 Call Stack
#   Time    Memory  Function    Location 1  0.0003  52596   {main}( )   ../test.php:0
life goes on
Run Code Online (Sandbox Code Playgroud)

是否可以禁用此行为并使其仅转储未捕获的异常?

提前致谢.

更新:我即将得出结论,这是一个错误,因为默认情况下禁用了xdebug.show_exception_trace但它的行为并不像预期的那样(在Ubuntu 9.10上使用Xdebug v2.0.5和PHP 5.2.10).

Art*_*cto 9

更改xdebug.show_exception_trace选项(请注意,默认情况下不启用它).

xdebug.show_exception_trace

类型:整数,默认值:0

当此设置设置为1时,Xdebug将在引发异常时显示堆栈跟踪 - 即使实际捕获到此异常.