在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类相关推荐

  1. .NET中异常类(Exception)

    异常:程序在运行期间发生的错误.异常对象就是封装这些错误的对象. try{}catch{}是非常重要的,捕获try程序块中所有发生的异常,如果没有捕获异常的话,程序运行的线程将会挂掉,更严重的是这些错 ...

  2. java 异常继承树_java中的error与exception

    Error类和Exception类都继承自Throwable类. Error的继承关系: Exception的继承关系: 二者的不同之处: Exception: 1.可以是可被控制(checked) ...

  3. OpenCV 中的 Scalar 类、Vec类

    转 自 http://www.bubuko.com/infodetail-1533054.html 文章目录 Scalar 类 Vec 类 Scalar 类 typedef Scalar_<do ...

  4. Python中的异常(Exception)处理

    异常 当你的程序出现例外情况时就会发生异常(Exception).例如,当你想要读取一个文件时,而那个文件却不存在,怎么办?又或者你在程序执行时不小心把它删除了,怎么办?这些通过使用异常来进行处理. ...

  5. java 向上取整_java 中的异常处理和常用类使用

    一.异常: 1.异常的简单介绍: Throwable类 / Error Exception | | Unchecked Checked Runtime Exception Exception Exce ...

  6. Java中如何引用另一个类里的集合_【18期】Java序列化与反序列化三连问:是什么?为什么要?如何做?...

    Java序列化与反序列化是什么? Java序列化是指把Java对象转换为字节序列的过程,而Java反序列化是指把字节序列恢复为Java对象的过程: 序列化:对象序列化的最主要的用处就是在传递和保存对象 ...

  7. java 类隔离_Java类装载体系中的隔离性

    正文 Java中类的查找与装载出现的问题总是会时不时出现在Java程序员面前,这并 不是什么丢脸的事情,相信没有一个Java程序员没遇到过ClassNotException,因此不要为被人瞅见自己也犯 ...

  8. php如何在类的外部修改成员属性,php中如何在外部修改类的私有或受保护属性值...

    php中怎么在外部修改类的私有或受保护属性值 在做单元测试框架时,发现了个比较郁闷的问题:测试人员需要在类外修改类的private或protected成员变量的值,而这些变量没有抽象成public的属 ...

  9. Java中泛型 Class<T>、T与Class<?>、 Object类和Class类、 object.getClass() 和 Object.class

    From:Java中泛型 Class<T>.T 与 Class<?>. Object类 和 Class类. object.getClass() 和 Object.class : ...

  10. jAvA中deprecate,在Java中使用Deprecated方法或类是错误的吗?

    1.在Java中使用Deprecated方法或类是错误的吗? 从已弃用的定义 : 注释@Deprecated的程序元素是程序员不鼓励使用的程序元素,通常是因为它是危险的,或者是因为存在更好的selec ...

最新文章

  1. 上下位机通讯协议_上位机与下位机的区别通讯
  2. python必背100代码-这 100 道 Python 题,拿去刷!!!
  3. Cesium学习笔记(五):3D 模型 (http://blog.csdn.net/umgsoil/article/details/74572877)
  4. 定了!对于本周四(7.16日)抽奖活动取消简要说明,新抽奖活动暂定下周三(7.22日)...
  5. 【C/C++】关键字static
  6. android录屏软件冲突,关于Android同时录制多个录像的问题
  7. css碎步测量,CORS系统控制点点位可靠性研究.doc
  8. CentOS6.4 安装MongoDB
  9. 洛谷P1640 [SCOI2010]连续攻击游戏(二分图)
  10. excel批量制作条形码_如何在Microsoft Excel中制作条形图
  11. Unity内存优化 之 ManagedHeap 整理
  12. 简述线性和非线性电路及其区别
  13. 安装和开启 魔改bbr
  14. 这套精美的开源数据报表模板,美呆了
  15. php下划虚线,怎么定义每一行的文字下面都有下划线虚线?_html/css_WEB-ITnose
  16. 步进电机的抖动和噪音从何而来 如何使步进电机完全静音
  17. 用python计算转换温度
  18. ajax请求时拒绝访问,ajax跨域请求js拒绝访问的解决方法
  19. 网易回应暴力裁员事件并道歉!程序员曝亲身经历逼迫、算计、监视、陷害、威胁,甚至被保安赶出公司...
  20. visualvm 字体太小解决方案

热门文章

  1. 零基础学PS平面设计基础有哪些?
  2. ArcGIS中3度带和6度带投影变换方法及跨带投影问题
  3. springcloud 的系统预热及预处理
  4. redis--geospatial
  5. 密码学:密钥管理、数字签名、散列函数与证书
  6. HackTheBox: Arctic靶场
  7. IOS 生成pem证书方法
  8. 帝国CMS7.5支付宝支付插件/帝国CMS支付功能代码/帝国CMS在线支付
  9. Java 进阶巩固:什么是注解以及运行时注解的使用
  10. Alexa排名50的X站为什么SEO做的这么好?