PHP自定义异常处理器的几种使用方法
发布网友
发布时间:2022-04-21 23:54
我来回答
共2个回答
懂视网
时间:2022-04-28 12:55
异常处理
set_exception_handler — 设置用户自定义的异常处理函数
使用 try / catch 捕获
相关介绍:
set_exception_handler()
函数设置用户自定义的异常处理函数。
该函数用于创建运行期间的用户自己的异常处理方法。
该函数返回旧的异常处理程序,如果失败则返回 NULL。
语法
set_exception_handler(exception_function)
参数
exception_function 必需。规定未捕获的异常发生时调用的函数。
该函数必须在调用 set_exception_handler() 函数之前定义。这个异常处理函数需要需要一个参数,即抛出的 exception 对象。
更多相关知识,请访问PHP中文网!
热心网友
时间:2022-04-28 10:03
我们介绍的这个PHP自定义异常处理器为PHP内置的exception_uncaught_handler()函数。该函数可用于设置用户自定义的异常处理函数,处理trycatch块未捕获的异常。
以下4段代码为我在waylife项目中的简单应用(非生产环境),不健壮也不美化,但该SNS项目早已经夭折。
1、异常类的层级关系:
classNotFoundExceptionextendsException{}
classInputExceptionextendsException{}
classDBExceptionextendsException{}
2、配置未捕捉异常的处理器:
functionexception_uncaught_handler(Exception$e){
header('Content-type:text/html;charset=utf-8');if($einstanceofNotFoundException)exit($e-
getMessage());
elseif($einstanceofDBException)exit($e-
getMessage());elseexit($e-
getMessage());}set_exception_handler('exception_uncaught_handler');
3、在数据库连接代码源码天空
,手动抛出DBException异常但未使用trycatch进行捕获处理,该异常将被PHP自定义异常处理器exception_uncaught_handler()函数处理:$this-resConn=mysql_connect
($CONFIGS['db_host'],$CONFIGS['db_user'],$CONFIGS['db_pwd']);if(false==is_resource($this-resConn))thrownewDBException('数据库连接失败。'.mysql_error($this-resConn));4、业务逻辑一瞥:
if(0!=strcmp($curAlbum-
interest_id,$it))
thrownewNotFoundException('很抱歉,你所访问的相册不存在');