博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
试论Java异常
阅读量:6408 次
发布时间:2019-06-23

本文共 1501 字,大约阅读时间需要 5 分钟。

hot3.png

 

/**

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

//自定义异常

//蓝屏
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

你可能感兴趣的文章
随机产生四则运算,导入导出文件
查看>>
位运算符
查看>>
winform自定义控件
查看>>
C#编码好习惯
查看>>
避其锋芒,侧翼出击。——司马亮创业回忆录(一)
查看>>
scope
查看>>
一起谈.NET技术,晚绑定场景下对象属性赋值和取值可以不需要PropertyInfo
查看>>
一起谈.NET技术,.Net Framework源代码中的模式之Prototype(原型模式)
查看>>
[shell 命令] find 查找文件
查看>>
windows下启动mysql服务的命令行启动和手动启动方法
查看>>
VTK三维点集轮廓凸包提取
查看>>
【概率论与数理统计】小结9-3 - 区间估计
查看>>
Golang性能调优入门
查看>>
sqlloader外部表
查看>>
golang笔记——数组与切片
查看>>
屏蔽可忽略的js脚本错误
查看>>
散文分享
查看>>
【Vue】vue.js常用指令
查看>>
NFS学习
查看>>
MySql常用命令总结
查看>>