PHP异常类及异常处理操作实例详解
php  /  管理员 发布于 7年前   190
本文实例讲述了PHP异常类及异常处理操作。分享给大家供大家参考,具体如下: 异常处理归类于错误处理,PHP从5.1.0开始增加了Exception异常处理类。 一、异常处理 PHP 异常处理与Java相似,都使用try、throw、catch语句,发生异常时代码。如果异常没有被捕获,而且又没用使用 1、try: 用于可能发生异常的代码块。 2、throw: 规定如何触发(trigger)异常,用于抛出异常。每一个throw必须对应至少一个catch。 3、catch: 捕获异常,并创建包含异常信息的对象。 说明:姑且认为php的异常必须throw才能捕获到。 基本结构: 二、PHP 异常基类Exception 类摘要: 说明: 由该基类可看出,php异常对象主要包含异常的文本信息(message)、异常代码/代号(code,应该是用于开发人员标识)、异常发生的文件(file,即发生异常的php文件)、异常发生的具体位置(line,抛出异常的行号)。 示例: 浏览器打印结果: Exception:file:D:\studyFolder\wamp\workspace\basicphp\testException.php,message:Some error message,code:30line:3 关于php中类与对象的基础(如方法调用),具体看类与对象小节。 三、自定义异常类 示例: 抛出与捕获该异常: 四、多catch捕获异常 当一个try语句中可能抛出不同的异常时,对应的可有多个catch块捕获不同类型异常。同java中的一些注意点: 1、大异常catch放后面。因为抛出异常时按顺序判断先满足哪个catch,一次仅执行一个catch。 2、执行一次try,最多执行一个catch(发生异常时),即若前面某个catch满足执行,则后面的catch不再考虑。(常见考题) 五、嵌套抛出异常 结构示例: 六、设置顶层异常处理器 示例: 结果: Exception:Uncaught Exception occurred 更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP错误与异常处理方法总结》、《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》 希望本文所述对大家PHP程序设计有所帮助。set_exception_handler()
作相应的处理的话,那么将发生一个严重的错误(致命错误),并且输出 "Uncaught Exception" (未捕获异常)的错误消息。try{#some codesthrow new Exception("message"[,code[,...]]);}catch(Exception $ex){#some codes}
Exception {/* 属性 */protected string $message ;protected int $code ;protected string $file ;protected int $line ;/* 方法 */public __construct ([ string $message = "" [, int $code = 0 [, Exception $previous = NULL ]]] )final public string getMessage ( void )final public Exception getPrevious ( void ) //获取异常链中前一个异常final public int getCode ( void )final public string getFile ( void )final public int getLine ( void )final public array getTrace ( void ) //获取异常追踪信息final public string getTraceAsString ( void ) //字符串方式返回异常追踪信息public string __toString ( void )final private void __clone ( void )}
getFile().",message:" . $e->getMessage().",code:".$e->getCode()."line:".$e->getLine();}?>
class customException extends Exception { public function errorMessage() { //error message $errorMsg = 'Error on line '.$this->getLine().' in '.$this->getFile() .': '.$this->getMessage().' is not a valid E-Mail address'; return $errorMsg; } }
try{throw new customException("这是自定义异常。");}catch(customException $ex){#some codes}
try{ try{ throw new Exception("第一个异常"); } catch(Exception $e1){ #相关处理 throw new Exception("处理后抛出异常");//再次抛出异常 }}catch(Exception $e2){ #相关处理}
set_exception_handler('myException')
:函数设置所有未捕获的异常的处理函数句柄(函数名,此处即myException)。Exception: " , $exception->getMessage();}set_exception_handler('myException');throw new Exception('Uncaught Exception occurred');?>
您可能感兴趣的文章:
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号