PHP Exception类

在PHP环境中,Exception类主要有两个作用:

  • 作为其它异常类的父类。
  • 作为错误处理的通用类。

下面,我们就首先了解一下Exception类的基本使用方法。

Exception成员

Exception类的构造函数定义如下:

__construct(<异常信息>, <异常代码>, <前一错误>)

这三个参数都是可选的,作为自己创建的异常对象,我们一般不需要指定后两个参数,但是,如果一个异常一点信息都没有,那怎么知道是出现什么问题了呢?所以,一般我们会指定第一个参数。

在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()方法,我们可以添加异常对象克隆时的附加操作。

下面,我们就定义一简单的异常类。

class CUnknowException extends Exception  
{  
    function __construct()  
    {  
        this->message = '未知的错误';this->code = -1;  
        this->file = __FILE__;this->line = __LINE__;  
    }  

    function __toString()  
    {  
        return __CLASS__.': 未知的错误';  
    }  
}  

ex = new CUnknowException();  
echoex->getMessage();  
echo '<br>';  
echo $ex;

代码执行结果如下图。

PHP 异常处理

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程