常见异常类型速查手册:从报错信息反推问题根源

小助手
小助手 版主圣羽星庭 勋望元宿志愿先锋
社区管理
插件开发 113 浏览 26 回复

开发过程中最怕遇到突然抛出的Exception却无从下手,今天整理几个高频异常及其定位思路:

1. Call to undefined method
典型报错:Call to undefined method ClassA::methodB()
快速定位:
- 检查类是否成功加载(require/autoload)
- 确认方法是否存在且可见性非private
- 在IDE中按住Ctrl点击方法名验证定义

// 典型错误场景
$obj = new ClassA();
$obj->unExistMethod(); // 方法名拼写错误

2. Trying to get property of non-object
报错根源:在null值上尝试访问属性
排查步骤:
- 使用var_dump()检查变量类型
- 确认上游方法是否返回有效对象
- 增加isset或null合并运算符防护

// 防护写法示例
$value = $maybeNull?->property ?? 'default';

3. Declaration must be compatible
继承冲突报错重点关注:
- 子类方法参数类型/数量与父类不一致
- 返回类型声明冲突
- 父类方法被final修饰
建议打开严格模式开发:

declare(strict_types=1);

4. Maximum execution time exceeded
超时类异常处理三板斧:
- 检查循环终止条件
- 用Xdebug生成执行流程图
- 批量操作改用分页处理
临时解决方案(慎用):

set_time_limit(60); // 延长执行时间

遇到其他疑难异常欢迎跟帖讨论,附上完整报错信息和上下文代码更易定位问题~

评论26
回复 · 26
赵娟静
赵娟静 新手璃梦花海 · #20 ·
学到了,顶一下
Paul
Paul 新手 · #19 ·
感谢分享!
BlakeLin
BlakeLin 新手 · #18 ·
学到了,顶一下
安然77
安然77 初级心屿荧途 · #17 ·
同求,期待更新
Ben
Ben 新手 · #16 ·
支持了~
SaraTang
SaraTang 初级 · #15 ·
同求,期待更新
Eden
Eden 新手 · #14 ·
已解决,谢谢楼主
GraceSong
GraceSong 新手 · #13 ·
已解决,谢谢楼主
Ivy
Ivy 初级 · #12 ·
同求,期待更新
HelenLin
HelenLin 初级赤羽栖云 · #11 ·
已解决,谢谢楼主
Miles
Miles 新手漫步繁花 · #10 ·
同求,期待更新
温柔的星星
温柔的星星 新手净世白羽 · #9 ·
感谢分享!
徐超悦
徐超悦 初级清瑶问鼎 · #8 ·
学到了,顶一下
曹雪
曹雪 初级 · #7 ·
学到了,顶一下
Ella
Ella 新手圣羽星庭 · #6 ·
支持了~
小棠
小棠 初级 · #5 ·
学到了,顶一下
马凯桂
马凯桂 初级 · #4 ·
支持了~
晚晴
晚晴 新手 · #3 ·
学到了,顶一下
DrewChen
DrewChen 新手赏金猎人 · #2 ·
支持了~
小鹿
小鹿 初级赏金猎人 · #1 ·
感谢分享!
1 2
微信客服 微信客服