php异常处理之自定义异常

[复制链接]
查看1630 | 回复0 | 2020-11-3 17:28 | 显示全部楼层 |阅读模式
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>
复制代码


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

UID
1
贡献
387
丢币
38902
主题
4607
回帖
116
注册时间
2018-9-25
最后登录
2024-4-16