找回密码
 免费注册

php教程自定义异常

[复制链接]
发表于 2022-12-6 16:00:35 | 显示全部楼层 |阅读模式
php教程自定义异常

场景:如果实现异常的分类处理?比如异常有三个级别异常对应三种处理方式
自定义三种异常即可
所有异常类的父类是Exception,Exception中的方法不允许重写
  1. <?php
  2. //自定义空异常类
  3. class MyNullException extends Exception {
  4. }
  5. //自定义类型异常
  6. class MyTypeException extends Exception {
  7. }
  8. //自定义范围异常
  9. class MyRangeException extends Exception {
  10. }
  11. //逻辑代码
  12. if(isset($_POST['button'])) {
  13.         try{
  14.                 $name=$_POST['name'];
  15.                 $age=$_POST['age'];
  16.                 if($name=='')
  17.                         throw new MyNullException('姓名不能为空');
  18.                 if($age=='')
  19.                         throw new MyNullException('年龄不能为空');
  20.                 if(!is_numeric($age))
  21.                         throw new MyTypeException('年龄不是数字');
  22.                 if($age<10 || $age>30)
  23.                         throw new MyRangeException('年龄必须在10-30之间');
  24.                 echo '姓名:'.$name,'<br>';
  25.                 echo '年龄:'.$age;
  26.         }catch(MyNullException $ex){
  27.                 echo $ex->getMessage(),'<br>';
  28.                 echo '错误记录在日志中';
  29.         }catch(MyTypeException $ex){
  30.                 echo $ex->getMessage(),'<br>';
  31.                 echo '发送电子邮件';
  32.         }catch(MyRangeException $ex){
  33.                 echo $ex->getMessage(),'<br>';
  34.                 echo '给管理员打电话';
  35.         }

  36. }
  37. ?>
  38. <form method="post" action="">
  39.         姓名: <input type="text" name="name"> <br />
  40.         年龄: <input type="text" name="age"> <br />
  41.         <input type="submit" name="button" value="提交">
  42. </form>
复制代码

QQ|Archiver|小黑屋|网站地图|深圳市金黑网络技术有限公司 ( 粤ICP备2021124338号|粤公网安备 44030702003689号 )

GMT+8, 2026-8-8 17:06 , Processed in 0.121236 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表