PHP 嵌套异常


简介

try - catch 块可以嵌套到任何所需的级别。异常将按出现顺序的倒序列进行处理,即最内部异常处理最先完成。

示例

在以下示例中,内部 try 块会检查两个变量是否是数字,如果不是,则抛出用户自定义异常。外部 try 块如果分母为 0,则抛出 DivisionByZeroError。否则将显示两个数字的除法。

示例

 在线演示

<?php
class myException extends Exception{
   function message(){
      return "error : " . $this->getMessage() . " in line no " . $this->getLine();
   }
}
$x=10;
$y=0;
try{
   if (is_numeric($x)==FALSE || is_numeric($y)==FALSE)
      throw new myException("Non numeric data");
}
catch (myException $m){
   echo $m->message();
   return;
}
if ($y==0)
   throw new DivisionByZeroError ("Division by 0");
echo $x/$y;
}
catch (DivisionByZeroError $e){
   echo $e->getMessage() ."in line no " . $e->getLine();
}
?>

输出

显示以下输出

Division by 0 in line no 19

将任何一个变量更改为非数字值

error : Non numeric data in line no 20

如果两个变量都是数字,则会打印它们的除法

更新于: 2020-09-18

518 次浏览

开启您的 职业

完成课程并获得认证

开始学习
广告
© . All rights reserved.