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



