深圳市金黑网络技术有限公司始终坚持以用户需求为导向,提供安全、稳定、高效的产品和服务!
签到 · 搜索导航 · 服务热线 · 微信/手机:17817817816

深圳网站建设

查看: 352|回复: 0

php教程自定义异常

[复制链接]

UID
1
贡献
844
金币
1540
主题
520
在线时间
333 小时
注册时间
2022-1-15
最后登录
2024-11-12
QQ
发表于 2022-12-6 16:00:35 | 352 | 0 | 显示全部楼层 |阅读模式
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>
复制代码

楼主热帖

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

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