PHP Xdebug配置导致代码异常无法被捕获从而导致500错误
3小时前
字数 1576
阅读 12
已编辑
项目环境:laravel6
有一个自定义异常MyException
继承自Exception
class MyException extends Exception {
public function __construct(string $message = "", int $code = 0) {
parent::__construct($message, $code);
}
}
方法调用链如下
function a -> function b
a
方法调用b
方法,b
方法抛出MyException
异常,a
方法调用的地方有捕获Exception
public function a {
try {
$this->b();
} catch (Exception $e) {
...
}
}
最终结果是a
的 try catch 并未生效,异常未被捕获,导致接口发生500错误。排查到最后原因是因为我的xdebug配置不当。
php.ini内容如下
[xdebug]
xdebug.remote_handler="dbgp"
xdebug.client_host=localhost
xdebug.client_port=9003
xdebug.idekey=phpstorm
xdebug.start_with_request=no
xdebug.mode=debug,develop
xdebug.var_display_max_children=128
xdebug.var_display_max_data=1024
xdebug.var_display_max_depth=15
xdebug.log_level = 0
xdebug.show_error_trace=0
导致此问题的配置项是 xdebug.var_display_max_depth=15
xdebug.var_display_max_depth
控制 Xdebug 在输出变量(比如 print_r、var_dump 或错误堆栈)时,递归展开的深度。
当值很大(比如 15),如果你的异常对象里嵌套了很深的对象/数组(Laravel 的 Request、Model、Collection 都很深),
Xdebug 会在 生成错误信息/堆栈的时候 递归遍历整个对象树。
这个过程如果非常耗时,或者对象里有循环引用、资源句柄、魔术方法(get、call 等),可能触发 额外的异常 或 致命错误(如内存溢出),
这些错误发生在 try-catch 之外,就会直接 500,看起来像是“异常没被捕获”。
GPT解释是开启xdebug后,异常会被xdebug接管,它会尝试追踪异常堆栈信息,因为层级太深,导致了此错误。
1人点赞>
0 条评论
排序方式
时间
投票
快来抢占一楼吧
请登录后发表评论
相关推荐
文章归档
2025-08
4 篇
2025-07
1 篇
2025-05
2 篇
2024-11
1 篇
2024-06
1 篇
展开剩余 71 条
2024-05
2 篇
2024-04
2 篇
2024-03
2 篇
2024-01
1 篇
2023-10
1 篇
2023-09
1 篇
2023-08
1 篇
2023-06
1 篇
2023-04
1 篇
2022-12
2 篇
2022-06
1 篇
2022-04
4 篇
2022-03
3 篇
2022-01
6 篇
2021-12
2 篇
2021-11
2 篇
2021-10
2 篇
2021-09
1 篇
2021-08
2 篇
2021-07
4 篇
2021-06
1 篇
2021-05
3 篇
2021-04
3 篇
2021-01
2 篇
2020-11
1 篇
2020-10
3 篇
2020-09
2 篇
2020-08
1 篇
2020-07
5 篇
2020-06
5 篇
2020-05
1 篇
2020-04
1 篇
2020-03
2 篇
2020-02
3 篇
2020-01
1 篇
2019-11
5 篇
2019-10
10 篇
2019-09
12 篇
2019-08
17 篇
2019-07
8 篇
2019-05
3 篇
2019-04
8 篇
2019-03
7 篇
2019-02
8 篇
2019-01
5 篇
2018-12
7 篇
2018-11
8 篇
2018-10
4 篇
2018-09
7 篇
2018-08
12 篇
2018-07
9 篇
2018-06
6 篇
2018-05
11 篇
2018-04
18 篇
2018-03
1 篇
2018-02
2 篇
2018-01
10 篇
2017-12
14 篇
2017-11
44 篇
2017-10
13 篇
2017-09
4 篇
2017-08
12 篇
2017-07
5 篇
2017-06
4 篇
2017-05
2 篇
2017-04
3 篇
2017-03
9 篇
2017-02
3 篇
2017-01
2 篇
2016-12
10 篇
2016-11
4 篇
最新文章
最受欢迎
3小时前
3小时前
3小时前
07-14 20:57
13 评论
11 评论
10 评论