PHP自定义异常处理器的几种使用方法

开发 后端
PHP自定义异常处理器可以帮助我们处理try…catch块未捕获的异常,是PHP内置的exception_uncaught_handler()函数来实现这一功能。

处理异常在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自定义异常处理器的具体使用方法。

责任编辑:曹凯 来源: longlinfeng.com
相关推荐

2015-06-10 10:54:24

自定义路PHP

2023-11-22 09:45:44

2009-08-05 18:01:20

C#自定义异常处理

2023-03-30 16:16:00

Java自定义注解开发

2011-12-16 14:23:51

Java

2010-08-17 15:31:54

DB2 存储过程

2024-03-04 11:13:29

Django数据库Python

2009-12-02 16:04:44

PHP fsockop

2009-02-10 12:55:39

自定义控件AJAX.NET

2010-10-25 16:05:07

oracle自定义函数

2010-11-12 13:34:02

动态sql语句

2009-11-30 18:08:30

PHP制作动态计数器

2024-02-20 08:01:08

SQL注入器MyBatis数据库

2011-06-16 11:01:56

PHP继承

2009-12-07 16:52:59

PHP函数getima

2009-11-30 17:43:54

PHP split()

2021-06-17 06:52:37

C#自定义异常

2009-12-02 18:51:12

PHP分页类

2021-04-24 23:01:25

Python语言开发

2015-03-26 11:51:22

点赞
收藏

51CTO技术栈公众号