PHP自定义异常处理器的几种使用方法
创始人
2024-06-13 19:00:29
0

处理异常在PHP编程中是经常要被用到的。我们介绍的这个PHP自定义异常处理器为PHP内置的exception_uncaught_handler()函数。该函数可用于设置用户自定义的异常处理函数,处理try…catch块未捕获的异常。#t#

以下4段代码为我在waylife项目中的简单应用(非生产环境),不健壮也不美化,但该SNS项目早已经夭折。

1、异常类的层级关系:

  1. class NotFoundException extends Exception{}  
  2. class InputException extends Exception{}  
  3. class DBException extends Exception{} 


2、配置未捕捉异常的处理器:

  1. function exception_uncaught_handler(Exception $e) {  
  2. header('Content-type:text/html; charset=utf-8');  
  3. if ($e instanceof NotFoundException)  
  4. exit($e->getMessage());  
  5. elseif ($e instanceof DBException)  
  6. exit($e->getMessage());  
  7. else  
  8. exit($e->getMessage());  
  9. }  
  10. set_exception_handler('exception_uncaught_handler');  

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

  1. $this->resConn = mysql_connect ($CONFIGS['db_host'], $CONFIGS['db_user'], $CONFIGS['db_pwd']);  
  2. if (false == is_resource($this->resConn))  
  3. throw new DBException('数据库连接失败。'.mysql_error($this->resConn)); 


4、业务逻辑一瞥:

 

  1. if (0 != strcmp($curAlbum->interest_id, $it))  
  2. throw new NotFoundException('很抱歉,你所访问的相册不存在');  

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

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...