malike 发表于 2018-2-11 12:03:13


            什么是异常?

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

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

      异常的基本使用
      创建自定义的异常处理器
      多个异常
      重新抛出异常
      设置顶层异常处理器
php抛出异常与捕捉特定类型的异常最终的目的还是要给出对应的解决办法,让代码可以继续运行。
本文的测试环境:PHP5.5.36Safari 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 "Parcel 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;
页: [1]
查看完整版本: php抛出异常与捕捉特定类型的异常详解