Exception类的构造函数定义如下

    1. construct(<异常信息>, <异常代码>, <前一错误>)

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

    在try-catch语句结构和throw语句
    Exception对象还定义了__toString()方法,可以直接使用print或 echo显示异常对象信息

    Exception类的公共成员,主要有以下一些方法:

    • getMessage()方法,获取异常的消息。
    • getPrevious()方法,获取异常链中的前一个异常,如果不存在则返回null值。
    • getCode()方法,获取异常的代码。
    • getFile()方法,获取异常发生的文件名。
    • getLine()方法,获取异常发生的代码行号。
    • getTrace()方法,获取异常追踪信息,其返回值是一个数组。
    • getTraceAsString()方法, 获取异常追踪信息的字符串形式 ```jsx class CUnknowException extends Exception {
      construct() {

      1. $this->message = '未知的错误';
      2. $this->code = -1;
      3. $this->file = __FILE__;
      4. $this->line = __LINE__;

      }

      function __toString() {

      1. return __CLASS__.': 未知的错误';

      }
      }

    $ex = new CUnknowException(); ```

    • $message属性,异常的描述信息,定义为string类型。
    • $code属性,int类型,异常代码。
    • $file属性,string类型,表示出现异常的文件名,可以使用FILE常量获取。
    • $line属性,int类型,表示出现异常的行号,可以使用LINE常量获取。
    • __toString()方法,可以重定此方法,以便将异常对象转换为自己需要的字符串形式。
    • __clone()方法,可以添加异常对象克隆时的附加操作

    自定义异常类参考 https://weizhimiao.github.io/2016/09/30/PHP%E5%BC%82%E5%B8%B8%E5%92%8C%E9%94%99%E8%AF%AF%E5%A4%84%E7%90%86/