异常处理 - php中Exception和\Exception有什么区别?
高洛峰
高洛峰 2017-04-11 08:57:20
[PHP讨论组]

在代码中需要捕获一个异常,使用catch(Exception $e)无效,但是改成catch(\Exception $e)就可以。大概知道跟命名空间什么的有关,但是具体的不是很明白,求解答。另外,发现此文件中其他用到异常的地方都是用的(Exception $e)而非(\Exception $e)

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(4)
PHP中文网

如果你的PHP文件定义了命名空间,那么该命名空间下面的class 用法必须加\
表示根空间,也就是php自己的class,不是你PHP文件里面的class

高洛峰

无法捕捉的原因可能使因为抛出的异常不匹配,检查其他异常抛出的异常类是不是经过一层继承关系的。。

ringa_lee

情迷说得对。

如果你的PHP文件定义了命名空间,catch(Exception $e) 则会寻找该命名空间下面的Exception 类,如果未定义就会出现找不到类的问题。

catch(\Exception $e)表示根空间,这个类是始终存在。

推荐看一下 modern php 这本书。

巴扎黑

Exception表示根命名空间,说白了就是php官方的异常累类,不加的话可能是你当前定义的命名空间下的类

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号