PHP 異常類 Exception

mpsky發表於2021-09-09


 class MyException extends Exception{//必須繼承Exception類

    function __construct($mess){

        parent::__construct($mess);

    }

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

         echo '換上備胎';

     }

      

 }

echo "早上起床
";

    $flag = true;//根據異常情況設定標誌位來丟擲異常

     

try{

    echo "開車上班
";

    if($flag){

    //丟擲異常

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

    }

    echo "路況很好
";

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

    echo $e->getMessage()."
";

    echo $e->change()."
";//呼叫自定義類的方法

    echo "換上備胎,繼續開車上班
";

}

 

echo "到公司
";

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

 

 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 "物質準備到位
";

     }

     function eat($time){

         if(!$time){

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

         }

         echo "吃很飽
";

     }

     function gowork($nut){

         if(!$nut){

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

         }

         echo "去上班啦!
";

     }

     function highway($snow){

         if(!$snow){

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

         }

         echo "走高速
";

     }

 }

echo "早上起床
";

    $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 "到公司
";

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1806/viewspace-2809091/,如需轉載,請註明出處,否則將追究法律責任。

相關文章