php中exception类,PHP Exception类
在PHP环境中,Exception类主要有两个作用:
作为其它异常类的父类。
作为错误处理的通用类。
下面,我们就首先了解一下Exception类的基本使用方法。
Exception成员
Exception类的构造函数定义如下:
这三个参数都是可选的,作为自己创建的异常对象,我们一般不需要指定后两个参数,但是,如果一个异常一点信息都没有,那怎么知道是出现什么问题了呢?所以,一般我们会指定第一个参数。
在try-catch语句结构和throw语句的相关讨论中,我们会看到Exception类的具体应用。
再看Exception类的公共成员,主要有以下一些方法:
getMessage()方法,获取异常的消息。
getPrevious()方法,获取异常链中的前一个异常,如果不存在则返回null值。
getCode()方法,获取异常的代码。
getFile()方法,获取异常发生的文件名。
getLine()方法,获取异常发生的代码行号。
getTrace()方法,获取异常追踪信息,其返回值是一个数组。
getTraceAsString()方法, 获取异常追踪信息的字符串形式。
Exception对象还定义了__toString()方法,我们可以直接使用print或echo显示异常对象信息。
创建自定义异常类
创建自定义的异常类时,我们可以将它们定义为Exception类的子类,但对于前面介绍的公共方法,我们不能重写它们,因为它们都定义为final的,不过,还是有一些成员可以供我们在子类使用的,如:
$message属性,异常的描述信息,定义为string类型。
$code属性,int类型,异常代码。
$file属性,string类型,表示出现异常的文件名,可以使用FILE常量获取。
$line属性,int类型,表示出现异常的行号,可以使用LINE常量获取。
__toString()方法,我们可以重定此方法,以便将异常对象转换为自己需要的字符串形式。
__clone()方法,我们可以添加异常对象克隆时的附加操作。
下面,我们就定义一简单的异常类。
代码执行结果如下图。
php中exception类,PHP Exception类相关推荐
- .NET中异常类(Exception)
异常:程序在运行期间发生的错误.异常对象就是封装这些错误的对象. try{}catch{}是非常重要的,捕获try程序块中所有发生的异常,如果没有捕获异常的话,程序运行的线程将会挂掉,更严重的是这些错 ...
- java 异常继承树_java中的error与exception
Error类和Exception类都继承自Throwable类. Error的继承关系: Exception的继承关系: 二者的不同之处: Exception: 1.可以是可被控制(checked) ...
- OpenCV 中的 Scalar 类、Vec类
转 自 http://www.bubuko.com/infodetail-1533054.html 文章目录 Scalar 类 Vec 类 Scalar 类 typedef Scalar_<do ...
- Python中的异常(Exception)处理
异常 当你的程序出现例外情况时就会发生异常(Exception).例如,当你想要读取一个文件时,而那个文件却不存在,怎么办?又或者你在程序执行时不小心把它删除了,怎么办?这些通过使用异常来进行处理. ...
- java 向上取整_java 中的异常处理和常用类使用
一.异常: 1.异常的简单介绍: Throwable类 / Error Exception | | Unchecked Checked Runtime Exception Exception Exce ...
- Java中如何引用另一个类里的集合_【18期】Java序列化与反序列化三连问:是什么?为什么要?如何做?...
Java序列化与反序列化是什么? Java序列化是指把Java对象转换为字节序列的过程,而Java反序列化是指把字节序列恢复为Java对象的过程: 序列化:对象序列化的最主要的用处就是在传递和保存对象 ...
- java 类隔离_Java类装载体系中的隔离性
正文 Java中类的查找与装载出现的问题总是会时不时出现在Java程序员面前,这并 不是什么丢脸的事情,相信没有一个Java程序员没遇到过ClassNotException,因此不要为被人瞅见自己也犯 ...
- php如何在类的外部修改成员属性,php中如何在外部修改类的私有或受保护属性值...
php中怎么在外部修改类的私有或受保护属性值 在做单元测试框架时,发现了个比较郁闷的问题:测试人员需要在类外修改类的private或protected成员变量的值,而这些变量没有抽象成public的属 ...
- Java中泛型 Class<T>、T与Class<?>、 Object类和Class类、 object.getClass() 和 Object.class
From:Java中泛型 Class<T>.T 与 Class<?>. Object类 和 Class类. object.getClass() 和 Object.class : ...
- jAvA中deprecate,在Java中使用Deprecated方法或类是错误的吗?
1.在Java中使用Deprecated方法或类是错误的吗? 从已弃用的定义 : 注释@Deprecated的程序元素是程序员不鼓励使用的程序元素,通常是因为它是危险的,或者是因为存在更好的selec ...
最新文章
- 上下位机通讯协议_上位机与下位机的区别通讯
- python必背100代码-这 100 道 Python 题,拿去刷!!!
- Cesium学习笔记(五):3D 模型 (http://blog.csdn.net/umgsoil/article/details/74572877)
- 定了!对于本周四(7.16日)抽奖活动取消简要说明,新抽奖活动暂定下周三(7.22日)...
- 【C/C++】关键字static
- android录屏软件冲突,关于Android同时录制多个录像的问题
- css碎步测量,CORS系统控制点点位可靠性研究.doc
- CentOS6.4 安装MongoDB
- 洛谷P1640 [SCOI2010]连续攻击游戏(二分图)
- excel批量制作条形码_如何在Microsoft Excel中制作条形图
- Unity内存优化 之 ManagedHeap 整理
- 简述线性和非线性电路及其区别
- 安装和开启 魔改bbr
- 这套精美的开源数据报表模板,美呆了
- php下划虚线,怎么定义每一行的文字下面都有下划线虚线?_html/css_WEB-ITnose
- 步进电机的抖动和噪音从何而来 如何使步进电机完全静音
- 用python计算转换温度
- ajax请求时拒绝访问,ajax跨域请求js拒绝访问的解决方法
- 网易回应暴力裁员事件并道歉!程序员曝亲身经历逼迫、算计、监视、陷害、威胁,甚至被保安赶出公司...
- visualvm 字体太小解决方案