文章教程

9.7错误处理

9/17/2020 9:40:31 PM 人评论 次浏览

9.7 错误处理

错误处理也叫异常处理。通过使用try…throw…catch结构和一个内置函数Exception()来抛出和处理错误或异常。

下面通过打开文件的实例介绍异常的处理方法和技巧。

【例9.5】(实例文件:ch10\9.5.php)

  <html>
  <head>
  <title> 类的继承与接口</title>
  </head>
  <body>
  <?php
   $DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
   @$fp = fopen("$DOCUMENT_ROOT/book.txt",'rb');
   try{
      if (!$fp){
        throw new Exception("文件路径有误或找不到文件。");
    }
   }catch(Exception $exception){
      echo $exception->getMessage();
    echo "在文件". $exception->getFile()."的".$exception->getLine()."行。<br />";
   }
   @fclose($fp);
  ?>
  </body>
  </html>

运行结果如图9-5所示。

image

图9-5 程序运行结果

【案例分析】

(1)fopen()函数打开“$DOCUMENT_ROOT/book.txt”文件进行读取,但是由于“book.txt”文件不存在,则$fp为false。

(2)try区块判断$fp为false时,抛出一个意外。此意外直接通过new关键字生成Exception()类的实例。异常信息是传入参数定义的“文件路径有误或找不到文件。”。

(3)catch区块通过处理传入的Exception()类实例,显示出错误信息、错误文件、错误发生行。这些是通过直接调用Exception()类实例$exception的内置类方法获得。错误信息由getMessage()生成,错误文件由getFile()生成,错误发生行由getLine()生成。

(4)@fclose()和@$fp= fopen()中的“@”表示,屏蔽此命令的执行中产生的错误信息。

教程类别