Exception类的构造函数定义如下
construct(<异常信息>, <异常代码>, <前一错误>)
这三个参数都是可选的,作为自己创建的异常对象,一般不需要指定后两个参数;
但是,如果一个异常一点信息都没有,那怎么知道是出现什么问题了呢?所以,一般会指定第一个参数
在try-catch语句结构和throw语句
Exception对象还定义了__toString()方法,可以直接使用print或 echo显示异常对象信息
Exception类的公共成员,主要有以下一些方法:
- getMessage()方法,获取异常的消息。
- getPrevious()方法,获取异常链中的前一个异常,如果不存在则返回null值。
- getCode()方法,获取异常的代码。
- getFile()方法,获取异常发生的文件名。
- getLine()方法,获取异常发生的代码行号。
- getTrace()方法,获取异常追踪信息,其返回值是一个数组。
getTraceAsString()方法, 获取异常追踪信息的字符串形式 ```jsx class CUnknowException extends Exception {
construct() {$this->message = '未知的错误';
$this->code = -1;
$this->file = __FILE__;
$this->line = __LINE__;
}
function __toString() {
return __CLASS__.': 未知的错误';
}
}
$ex = new CUnknowException(); ```
- $message属性,异常的描述信息,定义为string类型。
- $code属性,int类型,异常代码。
- $file属性,string类型,表示出现异常的文件名,可以使用FILE常量获取。
- $line属性,int类型,表示出现异常的行号,可以使用LINE常量获取。
- __toString()方法,可以重定此方法,以便将异常对象转换为自己需要的字符串形式。
- __clone()方法,可以添加异常对象克隆时的附加操作