简述php异常处理机制,php中的异常处理机制

本文探讨了PHP和Java在异常处理上的差异。在PHP中,错误并不自动转换为异常,需要手动throw抛出。例如,尝试在数据库连接失败时触发异常是不可行的,这种情况下PHP会抛出错误而非异常。相比之下,Java拥有完善的异常处理系统,将所有异常情况视为异常进行处理。PHP的错误处理更为重要,提供了丰富的错误处理函数。对于开发者而言,理解这两门语言对异常和错误的不同定义有助于更好地进行编程实践。
摘要由CSDN通过智能技术生成

关于前段时间,自己提到的一个php中的异常处理机制问题,由于回答者甚少,笔者只好自己广搜网络资源以及大拿的文章(尤其参考PHP核心技术与最佳实践一书),现整理如下,如有错误,欢迎指出:

在各种语言中,异常和错误的概念其实是不一样的,在PHP中,任何自身错误都会触发一个错误,而不是抛出异常(对于一些情况,会同时抛出异常和错误!)。在这个意义上,如果像使用异常一样去处理一些不可预知的情况,是办不到的。比如,想在数据库连接打不开时触发异常,是不可行的,这在PHP中把他作为错误抛出,而不会作为异常自动捕获。

经典除零问题:

try {

$a = 5 / 0;

echo $a;

} catch (Exception $e) {

echo $e->getMessage();

$a = 123;

}

echo $a;

输出结果是:

bVc9DQ

PHP只有你手动throw抛出异常后,才能捕获异常(一般是这样,但也有php异常可以自动捕获)。

而对于java,它有比较完善的异常处理机制,把一切认为不正常的情况都当作了异常,而PHP却把他们当成了错误,根本原因在于,java里异常是唯一的错误报告方式,而在php中却不是这样。通俗一点就是,这两门语言的设计者对于异常和错误的界定存在分歧,什么是异常,什么是错误,他们的设计者存在不同的观点而已。

说道异常,就不得不提php中异常的兄弟-----错误。php中错误的处理比异常的价值大得多,而且php提供了比较强大的错误处理函数,详细请自己查阅手则或者网络资源。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值