为了账号安全,请及时绑定邮箱和手机立即绑定

PHP 异常类 Exception

标签:
PHP


/*

 * 1.自定义的异常类,必须是系统类Exception的子类

 * 如果继承Exception类,重写了构造方法,一定要调用一下父类的构造方法。

 */

 class MyException extends Exception{//必须继承Exception类

    function __construct($mess){

        parent::__construct($mess);

    }

     function change(){//自定义方法

         echo '换上备胎';

     }

      

 }

echo "早上起床<br/>";

    $flag = true;//根据异常情况设置标志位来抛出异常

     

try{

    echo "开车上班<br/>";

    if($flag){

    //抛出异常

    throw new MyException("车子爆胎");

    }

    echo "路况很好<br/>";

}catch(MyException $e){//$e = new Exception();

    echo $e->getMessage()."<br/>";

    echo $e->change()."<br/>";//调用自定义类的方法

    echo "换上备胎,继续开车上班<br/>";

}

 

echo "到公司<br/>";

============================================================================

/*

 * 捕获多个异常catch

 */

 

 class WcException extends Exception{

     function methodWc(){

         echo "去公厕";

     }

 }

  

 class NoeatException extends Exception{

     function  methodEat(){

         echo "买个面包";

     }     

 }

 

 class NutException extends Exception{

     function  methodGowork(){

         echo "换个轮胎";

     }

 }

 class SnowException extends Exception{

     function  methodHighway(){

         echo "走小路";

     }

 }

 class Badday{

     function gowc($flag){

         if(!$flag){

             throw new WcException("马桶坏了");

         }

         echo "物质准备到位<br/>";

     }

     function eat($time){

         if(!$time){

             throw new NoeatException("无早餐可吃");

         }

         echo "吃很饱<br/>";

     }

     function gowork($nut){

         if(!$nut){

             throw new NutException("扎到钉子了");

         }

         echo "去上班啦!<br/>";

     }

     function highway($snow){

         if(!$snow){

             throw new SnowException("下雪封路了");

         }

         echo "走高速<br/>";

     }

 }

echo "早上起床<br/>";

    $flag = false;//根据异常情况设置标志位来抛出异常

     

try{

    $badday = new Badday();

    //1.上厕所(马桶不好用了) 去公厕

    $badday->gowc(true);

    //2.吃早餐(没有早点了) 买个面包

    $badday->eat(false);

    //3.开车上班(爆胎)  换胎

    $badday->gowork(true);

    //4.上高速(下雪了) 走国道

    $badday->highway(true);

}catch(WcException $e){

    echo $e->methodWc();

}catch (NoeatException $e){

    echo $e->methodEat();

}catch(NutException $e){

    echo $e->methodGowork();

}catch(SnowException $e){

    echo $e->methodHighway();

}catch (Exception $e){

    echo $e->getMessage();

}

 

echo "到公司<br/>";

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消