试论Java异常

 

/**
 * 描述问题
 * 电脑冒烟
 * 电脑蓝屏
 * //异常对于谁接受,谁就处理
 
 */

//自定义异常
//蓝屏
class LanPingException extends Exception
{
 public LanPingException(String smg) {
  super(smg);
 }
}

//冒烟
class MaoyanException extends Exception
{
 public MaoyanException(String smg)
 {
  super(smg);
 }
}
//课时无法继续
class NoPlan extends Exception
{
 public NoPlan(String smg)
 {
  super(smg);
 }
}

//老师对象
class Teacher
{
 private String name;
 
 private Computer cmpt;
 private Computer cmpt2;
 
 public Teacher(String name) {
  this.name =name;
  cmpt=new Computer();
  cmpt2=new Computer();
 
 }
 
 public void lesson() throws MaoyanException,NoPlan //声明异常
 { //提供预处理方式
  try
  {
   cmpt.run();
   System.out.println("讲课");
   
  }
  catch(LanPingException e)
  {
   System.out.println(e.toString());
   cmpt.reset();//重启之后,
   lesson();//继续上课
  }
  catch(MaoyanException e)
  {
   System.out.println(e.toString());
   //自己处理不了的异常,抛出
   //throw e;
   test();
   throw new NoPlan("电脑故障,无法继续");
   //换个电脑
   //cmpt2.run();
   
  }
  
 }
 public void test()
 {
  System.out.println("上自习吧,等着把你");
 }
 
}

 

//电脑对象
class Computer

 int state=2;
 
 void run() throws LanPingException,MaoyanException
 {
  if(state==1)
  
   throw new LanPingException("蓝屏啦!!!");//抛出异常
  
  if(state==2)
  
   throw new MaoyanException("冒烟啦,挂啦!!!");//抛出异常
  else
  System.out.println("电脑运行");
 }
 
 void reset()
 { 
  System.out.println("重启开机");
  state=0;
 }
}


public class ExceptionTest {
 public static void main(String[] args) throws  MaoyanException
 {
  Teacher t=new Teacher("毕老师");
  try
  {
   t.lesson();
   
  }
  catch(NoPlan e)//拿到异常对象,在处理
  {
   System.out.println("换人");
  }
  
 }

}

转载于:https://my.oschina.net/LiuLangEr/blog/335020

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值