小編給大家分享一下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如何自定義異常類”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。