php异常无法捕捉?
在文件a.php中引入文件b.php,并在a.php中执行b.php中的一个函数c。此时c抛出异常,而在a中无法捕获。环境:nginx,php-fpm。
nginx直接502
不好意思。一下贴出代码和错误:
a.php中代码
nginx 错误日志
此时在b中的pdo抛出了异常,这里是捕捉不到的,但是如果我在b.php文件的代码中直接catch(一下是b.php的代码):
另外,php-fpm没有任何错误日志。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
能贴代码就不要贴图啊!!!!!!!
要做啥说明你可以用注释啊!!!!!
从你的问题我给你几个建议:
catch(Error $e)
同时捕获错误,如果是报错的话,不用Error是捕获不到的,Exception只能捕获异常。以上三点,切记切记。
更新一下回答:
从你代码可见,你在用
这里的
Exception
类不知道是你自己定义的还是框架里的,不管这两种情况是输入哪一种,假设你b.php
中pdo所抛出的异常不是继承你a所定义的这个异常类,你在a中肯定无法捕获到。所以你可以用
\Exception
试一下,为PHP中所有异常类的基类。另外,我把
catch(Error $e)
加大一点,你用这个:
catch(Error $e)
试一下看看到底程序有没有错啊。
另外:
能贴代码就不要贴图啊!!!!!!!
说的是啥啊,图片都没有
Exception异常和Error错误都需要捕获
光捕获异常肯定不行的
php 7以上版本可以用Throwable
官方文档