文章教程

16.3.3获取异常信息的函数

9/17/2020 9:26:54 PM 人评论 次浏览

16.3.3 获取异常信息的函数

通过前面的学习,读者已经了解到,当一个程序遇到一个错误时,可以建立Exception类的对象来处理,就像下面这段代码一样。


$e=new Exception("Could not open file");


此时,Excetpion类的构造函数将通过一个错误信息创建一个该类的对象$e。建立这个对象后,通常使用关键字throw将这个异常(或者说错误)抛出。throw将脚本的执行中止,并使相关的Exception对象对客户代码可用。

本小节介绍Exception类的成员函数getMessage(),该函数用来产生一个对错误信息的描述。代码16-3演示了该成员函数的用法。

代码16-3 Exception类的成员函数getMessage()的使用16-3.php


01 <?php

02 $file='./test/readme.txt';//指定文件地址

03

04 try

05 {

06 if(is_dir($file))//判断是不是目录

07 {

08 echo'检测到目录';

09 }

10 else

11 {

12 //创建异常对象,错误信息将有Exception类的成员函数getMessage()返回

13 throw new Exception('未找到该目录或文件');

14 }

15 }

16 catch(Exception$e)

17 {

18 echo'捕获异常:'.$e->getMessage();

19 echo'<br/>===============================';

20 echo'<br/>';

21 }

22

23 echo'程序执行完毕';

24 ?>


【代码解析】这段代码将判断文件是否为目录的代码放在try块中,并且当所判断的文件不是目录时,创建异常类Exception的对象,并使用“未找到该目录或文件”这段信息初始化该对象,如代码第13行所示。这段信息被赋值给Exception类的成员变量$message,这个成员变量可以由Exception类的成员函数getMessage()返回,如这段代码第18行,通过Exception类的对象$e调用函数getMessage()将这个异常信息输出。这段程序的执行结果如图16-2所示。

图 16-2 使用Exception类的成员函数getMessage()

这里只是举一个简单例子说明如何使用Exception类,以及使用该类的成员函数getMessage()获取异常信息。一般是通过该类派生出处理某种操作的异常处理子类,来完成对异常的处理。在派生类中实现throw异常,然后在使用这个类的程序中try……catch。这样做的好处是:一是可以在子类中提供更多更完善有效的自定义功能;二是可以区分不同类型的异常。

教程类别