小编给大家分享一下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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。