溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

PHP如何自定義異常類(lèi)

發(fā)布時(shí)間:2021-10-19 13:46:28 來(lái)源:億速云 閱讀:86 作者:小新 欄目:web開(kāi)發(fā)

小編給大家分享一下PHP如何自定義異常類(lèi),相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

/*
 * 1.自定義的異常類(lèi),必須是系統(tǒng)類(lèi)Exception的子類(lèi)
 * 如果繼承Exception類(lèi),重寫(xiě)了構(gòu)造方法,一定要調(diào)用一下父類(lèi)的構(gòu)造方法。
 */
 class MyException extends Exception{//必須繼承Exception類(lèi)
    function __construct($mess){
        parent::__construct($mess);
    }
     function change(){//自定義方法
         echo '換上備胎';
     }
     
 }
echo "早上起床<br/>";
    $flag = true;//根據(jù)異常情況設(shè)置標(biāo)志位來(lái)拋出異常
    
try{
    echo "開(kāi)車(chē)上班<br/>";
    if($flag){
    //拋出異常
    throw new MyException("車(chē)子爆胎");
    }
    echo "路況很好<br/>";
}catch(MyException $e){//$e = new Exception();
    echo $e->getMessage()."<br/>";
    echo $e->change()."<br/>";//調(diào)用自定義類(lèi)的方法
    echo "換上備胎,繼續(xù)開(kāi)車(chē)上班<br/>";
}

echo "到公司<br/>";
============================================================================
/*
 * 捕獲多個(gè)異常catch
 */

 class WcException extends Exception{
     function methodWc(){
         echo "去公廁";
     }
 }
 
 class NoeatException extends Exception{
     function  methodEat(){
         echo "買(mǎi)個(gè)面包";
     }     
 }

 class NutException extends Exception{
     function  methodGowork(){
         echo "換個(gè)輪胎";
     }
 }
 class SnowException extends Exception{
     function  methodHighway(){
         echo "走小路";
     }
 }
 class Badday{
     function gowc($flag){
         if(!$flag){
             throw new WcException("馬桶壞了");
         }
         echo "物質(zhì)準(zhǔn)備到位<br/>";
     }
     function eat($time){
         if(!$time){
             throw new NoeatException("無(wú)早餐可吃");
         }
         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;//根據(jù)異常情況設(shè)置標(biāo)志位來(lái)拋出異常
    
try{
    $badday = new Badday();
    //1.上廁所(馬桶不好用了) 去公廁
    $badday->gowc(true);
    //2.吃早餐(沒(méi)有早點(diǎn)了) 買(mǎi)個(gè)面包
    $badday->eat(false);
    //3.開(kāi)車(chē)上班(爆胎)  換胎
    $badday->gowork(true);
    //4.上高速(下雪了) 走國(guó)道
    $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如何自定義異常類(lèi)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI