PHP扩展异常

介绍

Exception类实现Throwable接口,并且是所有Exception类,预定义的异常以及用户定义的异常的基类。Exception类定义了一些最终的(不可覆盖的)方法来实现Throwable接口中的方法,并 定义了__tostring() 方法,这些方法可以被覆盖以返回Exception对象的字符串表示形式。

最终公共职能 getMessage()例外信息
最终公共职能 getCode()例外代码
最终公共职能 getFile()源文件名
最终公共职能 getLine()源行
最终公共职能 getTrace()的数组 backtrace()
最终公共职能 getPrevious()先前的例外
最终公共职能 getTraceAsString()格式化的跟踪字符串
公共函数__toString()用于显示的格式化字符串

如果用户定义的异常类重新定义了构造函数,则应调用 parent::__ construct()以确保正确分配了所有可用数据。

示例

以下脚本定义了一个名为myException的自定义异常类。如果$num的值小于0或大于100,则抛出此类型的异常。Exception类的getMessage()方法返回错误消息,而getLine()方法返回出现异常的代码行

示例

<?php
class myException extends Exception{
   function message(){
      return "error : " . $this->getMessage() . " in line no " . $this->getLine();
   }
}
$num=125;
try{
   if ($num>100 || $num<0)
      throw new myException("$num is invalid number");
   else
      echo "$num is a valid number";
}
catch (myException $m){
   echo $m->message();
}
?>

输出结果

以$num = 125和$num = 90运行以上代码以获取错误消息和有效数字的消息

error : 125 is invalid number in line no 10