php中是怎么对异常进行处理的

介绍

这篇文章将为大家详细讲解有关php中是怎么对异常进行处理的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

当异常被触发时,通常会发生:在PHP5中添加了类似于其它语言的错误异常处理模块。在php代码中所产生的异常可被扔语句抛出并被捕捉语句捕获。需要进行异常处理的代码都必须放入试代码块内,以便捕获可能存在的异常。每一个尝试至少要有一个与之对应的。

使用多个抓可以捕获不同的类所产生的异常,当尝试代码块不再抛出异常或者找不到抓住能匹配所抛出的异常时,php代码就会在跳转到最后一个捕获的后面继续执行。当然,php允许在捕捉代码块内再次抛出(扔)异常,当一个异常被抛出时,其后(译者注:指抛出异常时所在的代码块)的代码将不会继续执行,而php就会尝试查找第一个能与之匹配的,如果一个异常没有被捕获,而且又没用使用set_exception_handler()作相应的处理的话,那么php将会产生一个严重的错误,并且输出异常……(未捕获异常)的提示信息。

1,异常类的层级关系,代码如下:

代码如下:

类NotFoundException扩展异常{}

类InputException扩展异常{}

类DBException扩展异常{}

2,配置未捕捉异常的处理器,代码如下:

代码如下:

函数exception_uncaught_handler(异常$ e) {,,
头(& # 39;- type: text/html;charset=utf - 8 # 39;);,,,
if ($ e instanceof NotFoundException),,,
退出($ e→getMessage ()),,,,
elseif ($ e instanceof DBException),,,
退出($ e→getMessage ()),,,,
else ,,
退出($ e→getMessage ()),,,,
},,,
set_exception_handler (& # 39; exception_uncaught_handler& # 39;);


3,在数据库连接代码,手动抛出DBException异常但未使用try…catch进行捕获处理,该异常将被PHP自定义异常处理器,exception_uncaught_handler()函数处理:

代码如下:

$ this→resConn=mysql_connect(美元配置[& # 39;db_host& # 39;],美元配置[& # 39;db_user& # 39;],美元配置[& # 39;db_pwd& # 39;]),,,,
如果(错误==is_resource ($ this→resConn)),,,
把新DBException(& # 39;数据库连接失败强生# 39;.mysql_error ($ this→resConn));


4,业务逻辑一瞥:

代码如下:

如果(0 !=strcmp()美元curAlbum→interest_id,美元)),,

把新NotFoundException(& # 39;很抱歉,你所访问的相册不存在& # 39;);

以上就是PHP自定义异常处理器的具体使用方法。

php实例代码如下:

代码如下:

& lt; ?php
类customException扩展异常
{
公共职能errorMessage ()
{
//错误消息
$ errorMsg=& # 39;误差>关于php中是怎么对异常进行处理的就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

php中是怎么对异常进行处理的