本文共 2168 字,大约阅读时间需要 7 分钟。
/* * 1.自定义的异常类,必须是系统类Exception的子类 * 如果继承Exception类,重写了构造方法,一定要调用一下父类的构造方法。 */ 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 "到公司";============================================================================/* * 捕获多个异常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 "物质准备到位"; } 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 "到公司";
转载于:https://blog.51cto.com/11410485/1842207