关于异常无法捕获的问题

来源:6-2 API接口数据安全解决方之开篇

慕神2904694

2020-01-07

你好,老师,我刚刚发现一个问题,我们在ApiHandleException这个控制器,重写了框架内Handle里的render方法,按照您的代码运行,一切正常,但是我发现一个问题,如果我配置文件内出现了语法错误,假设ext/app.php这个文件内,我定义了 return [ ‘x’ => ‘aaa’, ‘y’ =>‘bbb’; ] , 正常第二个键值对后面应该是逗号或者不加,但我不小心加上了分号,那么其实内部是报错的,但是不管我是否开启了DEBUG,都没有任何返回结果,直接访问页面,就是500的错误页面,没有任何错误提示,但如果我把重写的render给隐藏了,那么就会正常报错了。这个问题该如何处理呢?

  1. 我故意在方法内写一个错误的代码
    我故意在方法内写一个错误的代码

  2. 现在开启debug,报错正常
    图片描述

  3. 关闭debug,报错正常
    图片描述

  4. 我现在故意在配置文件ext/app.php文件内写错一个标点符号
    图片描述

  5. 现在什么错误都没有了,最后一张图是错误日志文件
    图片描述

图片描述

  1. 最后把ApiHandleException里的render方法给隐藏掉,报错就有了
    图片描述

Final 我发现异常抛给了ThrowableError这个类,我在render方法内,加入了判断测试,确实属于这个异常类,但是只能使用echo进行错误提示
图片描述

图片描述

写回答

1回答

singwa

2020-01-07

您好,老师测试了没有问题呢,

//img.mukewang.com/szimg/5e14aac409bf7b7d07640310.jpg




//img.mukewang.com/szimg/5e14aad10924738216080448.jpg

能走到自定义异常里面 抛出API数据格式的数据。

0
4
慕神2904694
回复
singwa
好的,谢谢老师
2020-01-08
共4条回复

PHP企业级实战,完成一套高可用高安全的App后台系统

轻轻松松开发一个安全可靠高效的多终端APP后台系统,可用于毕设

1263 学习 · 475 问题

查看课程