温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

PHP如何自定义异常类

发布时间:2021-10-19 13:46:28 来源:亿速云 阅读:86 作者:小新 栏目:web开发

小编给大家分享一下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/>";

以上是“PHP如何自定义异常类”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php
AI