加入收藏 | 设为首页 | 会员中心 | 我要投稿 海洋资讯信息网 (https://www.dahaijun.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

6-1 PHP异常处理之抛出一个异常

发布时间:2022-09-12 17:09:43 所属栏目:PHP教程 来源:
导读:  从PHP5开始,PHP支持异常处理,异常处理是面向对象一个重要特性,PHP代码中的异常通过throw抛出,异常抛出之后,后面的代码将不会再被执行。

  既然抛出异常会中断程序执行,那么为什么还需要使用异常处理
  从PHP5开始,PHP支持异常处理,异常处理是面向对象一个重要特性,PHP代码中的异常通过throw抛出,异常抛出之后,后面的代码将不会再被执行。
 
  既然抛出异常会中断程序执行,那么为什么还需要使用异常处理?
 
  异常抛出被用于在遇到未知错误,或者不符合预先设定的条件时,通知客户程序,以便进行其他相关处理,不至于使程序直接报错中断。
 
  当代码中使用了try catch的时候,抛出的异常会在catch中捕获,否则会直接中断。
 
  1、基本语法
 
  try{
 
  //可能出现错误或异常的代码
 
  //catch表示捕获,Exception是php已定义好的异常类
 
  } catch(Exception $e){
 
  //对异常处理,方法:
 
  //1、自己处理
 
  //2、不处理,将其再次抛出
 
  }
 
  2、处理处理程序应当包括:
 
  Try - 使用异常的函数应该位于 "try" 代码块内。如果没有触发异常,则代码将照常继续执行。但是如果异常被触发,会抛出一个异常。
 
  Throw - 这里规定如何触发异常。注意:每一个 "throw" 必须对应至少一个 "catch",当然可以对应多个"catch"
 
  Catch - "catch" 代码块会捕获异常PHP异常处理,并创建一个包含异常信息的对象。
 
  //创建可抛出一个异常的函数
  function checkNum($number){
       if($number>1){
           throw new Exception("异常提示-数字必须小于等于1");
       }
       return true;
   }
  
  //在 "try" 代码块中触发异常
   try{
       checkNum(2);
       //如果异常被抛出,那么下面一行代码将不会被输出
       echo '如果能看到这个提示,说明你的数字小于等于1';
   }catch(Exception $e){
       //捕获异常
       echo '捕获异常: ' .$e->getMessage();
   }
  上面代码将获得类似这样一个错误:
 
  捕获异常:: 异常提示-数字必须小于等于1
 
  例子解释:
 
  上面的代码抛出了一个异常,并捕获了它:
 
  创建 checkNum() 函数。它检测数字是否大于 1。如果是,则抛出一个异常。
 
  在 "try" 代码块中调用 checkNum() 函数。
 
  checkNum() 函数中的异常被抛出
 
  "catch" 代码块接收到该异常,并创建一个包含异常信息的对象 ($e)。
 
  通过从这个 exception 对象调用 $e->getMessage(),输出来自该异常的错误消息
 

(编辑:海洋资讯信息网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!