搜索
查看: 2307|回复: 0

php抛出异常与捕捉特定类型的异常详解

[复制链接]

4721

主题

4721

帖子

4672

积分

限制会员

积分
4672
发表于 2018-2-11 12:03:13 | 显示全部楼层 |阅读模式

            什么是异常?

PHP 5 提供了一种新的面向对象的错误处理方法。
异常处理用于在指定的错误(异常)情况发生时改变脚本的正常流程。这种情况称为异常。
当异常被触发时,通常会发生:

      当前代码状态被保存
      代码执行被切换到预定义的异常处理器函数
      根据情况,处理器也许会从保存的代码状态重新开始执行代码,终止脚本执行,或从代码中另外的位置继续执行脚本
我们将展示不同的错误处理方法:

      异常的基本使用
      创建自定义的异常处理器
      多个异常
      重新抛出异常
      设置顶层异常处理器
php抛出异常与捕捉特定类型的异常最终的目的还是要给出对应的解决办法,让代码可以继续运行。
本文的测试环境:PHP5.5.36  Safari 9.1.2
1 address)) {
36       throw new Exception('address not Specified(未填写地址)!');
37     }
38
39     //check the weight
40     //如果重量超过5
41     if($parcel->weight > 5) {
42       throw new HeavyParcelException('Parcel exceeds courier limit(包裹超过运送上限)!');
43     }
44
45     //otherwise we're coll
46     return true;
47   }
48 }
49
50 $myCourier = new Courier();
51 $parcel = new Parcel();
52 //add the address if we have it 为了测试这里不填写地址
53 $parcel->weight = 7;
54 try {
55   $myCourier->ship($parcel);
56   echo "parcel shipped";
57 } catch (HeavyParcelException $e) {//捕获HeavyParcelException 不写这个异常的类型名字,就跑到普通Exception抛出去了
58   echo "arcel weight error(重量错误): " . $e->getMessage();
59   //redirect them to choose another courier
60 } catch (Exception $e) {
61   echo "Someting went wrong(地址错误): " . $e->getMessage();
62   //exit so we don't try to proceed any further
63   exit;
64 }
65 echo '
';
66 $a = 123;
67 echo $a;
回复

使用道具 举报

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

本版积分规则

长春门户网站

长春门户网是网民了解长春的网络窗口,同是提供长春地区百姓生活分类供求信息的门户网站,同时提供长春网站建设、长春网站设计,我们将逐步的完善网站分类信息资源;

长春门户网二维码

联系我们

  • 工作时间:早上8:00 - 晚上5:30
  • 投稿联系:13624467185(微信同号)
  • 反馈邮箱:5053050@QQ.com
  • 公司地址:吉林省长春市亚泰大街与自由大路交汇五环国际大厦1408室

QQ|小黑屋|手机版|Archiver|cc! ( 吉ICP备2021009740号-8 )

Powered by Discuz! X3.4 © 2001-2013 Comsenz Inc.

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