Java基础复习---异常练习(一):实现老师用电脑上课

package exceptiontest;
/**
 * 代码描述:
 * 实现老师用电脑上课
 * 
 * 上课时可能出现的问题:
 * 1.电脑冒烟
 * 2.蓝屏
 * 
 * 要对问题进行描述,封装成对象
 * 
 * 可是当冒烟发送时,导致讲课无法继续
 * 这时就出现了,讲师的问题,课时计划无法完成
 * @author Administrator
 *2016年11月1日 09:46:25
 */

public class ExceptionTest {
	public static void main(String[]  agrs)  {
		Teacher t = new Teacher("dby");
		try {
			t.prelect();
		} catch (NoPlanException e) {
			// TODO Auto-generated catch block
			System.out.println(e.toString());
			System.out.println("换老师");
			System.out.println("放假");
			e.printStackTrace();
		}
		
	}
}
<pre name="code" class="java">package exceptiontest;

public class LanPingException extends Exception {

	LanPingException(String message){
		super(message);
	}
}


 
<pre name="code" class="java">package exceptiontest;

public class MaoYanException extends Exception {

	public MaoYanException(String message) {
		// TODO Auto-generated constructor stub
		super(message);
	}
	
}


 
<pre name="code" class="java">package exceptiontest;

public class NoPlanException extends Exception {
	NoPlanException(String message){
		super(message);
	}
}


 
</pre><pre name="code" class="java"><pre name="code" class="java">package exceptiontest;
/**
 * 一台电脑有三个状态
 * 运行()声明电脑可能发生的异常,LanPingException,MaoYanException
 * 1 正常运行
 * 2 电脑蓝屏 此时,抛出该异常LanPingException
 * 3 电脑冒烟 此时,抛出该异常MaoYanException
 * 
 * 内部
 * 如果要抛出异常,此时前提必须是是函数对该异常有声明
 * 如果要处理异常,则在try-catch中完成
 * @author Administrator
 *
 */
public class Computer {
	private int state = 3;
	public void run() throws LanPingException, MaoYanException {
		if(state == 2)
			throw new LanPingException("蓝屏了");
		if(state == 3)
			throw new MaoYanException("冒烟了");
		
		System.out.println("电脑运行");
	}
	
	public void reset(){
		System.out.println("电脑重启");
		
	}
	
}


 

package exceptiontest;
/**
 * 某教师需要使用电脑
 * 初始化,教师姓名,并为其分配电脑
 * 
 * 教师上课
 * 调用运行电脑()
 * 因为此时运行电脑()可能出现异常,所以需要进行异常处理
 * 处理 LanPingException e     重启电脑cup.reset();
 * 处理 MaoYanException e  先让学生做练习,紧接着教师的教学计划受影响
 * 		抛出 教学计划受影响这一异常  在老师上课()中进行异常NoPlanException的处理
 * 												由于MaoYanException.message
 * 												换老师或者放假
 * @author Administrator
 *
 */

public class Teacher {
	private String name;
	private Computer cup;
	
	Teacher(String name){
		this.name = name;
		cup = new Computer();
	}
	
	public void prelect() throws NoPlanException{
		
		try{
			cup.run();
			}
		catch(LanPingException e){
			cup.reset();
		}
		catch(MaoYanException e){
			test();
			throw new NoPlanException("课时无法继续,因为电脑"+ e.getMessage());
			//test();//Unreachable code  throw  不执行
		}
		System.out.println("老师讲课");
	}
	
	public void test(){
		System.out.println("练习");
	}
}


参考文献:传智播客毕向东Java基础视频教程-day09-12-面向对象(异常练习)

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编写一个Java项目,模拟一次包括老师备课,同学上课,布置作业和做作业的课堂教学过程。作业为判断字符串是否为2-重复串及其他字符串操作内容 1. 创建Java项目JavaTeaching2012 2. 创建包cn.qtech.util,在其中新建RepeatedStringEstimator,该有两个方法:(1)public boolean estimate(String s),用于判断字符串s是不是2-重复串(字符串中每个出现的字符出现2次且仅两次),如判断aaaa不是,abddab是,acbcab是。(2)public void stringOperate(),其中调用适当的字符串操作完成(a)判断两个字符传”abc”和”acb”是否相同,(b)输出"c:\\java\\jsp\\A.java"中第二次出现"\\j"的位置,并输出该位置起到串末的子串 3. 创建包cn.qtech.teaching,在其中新建抽象UniversityPeople,包含一个抽象方法void doDuty(TeachingMessage msg),表示某人完成自己的任务。 4. 在包cn.qtech.teaching中创建枚举TeachingState,其中包括常量BEIKE, TINGKE, BUZHIZUOYE, ZUOZUOYE,分别表示备课,听课,布置作业,做作业 5. 在包cn.qtech.teaching中创建Student继承自UniversityPeople,该有成员变量name及name的getter/setter方法实现的doDuty(TeachingMessage msg)方法中如果判断msg的状态为BEIKE,则修改msg状态为TINGKE并输出:"老师"+msg中老师对象名+"备完课后,去听课!";如果判断msg的状态为BUZHIZUOYE,则修改msg状态为ZUOZUOYE并输出:"老师"+msg中老师对象名+"布置完课作业后,开始做作业!",然后调用RepeatedStringEstimator中的两个方法输出作业结果 6. 在包cn.qtech.teaching中创建Teacher继承自UniversityPeople,该有成员变量name及name的getter/setter方法实现的doDuty(TeachingMessage msg)方法中如果判断msg的状态为TINGKE,则修改msg状态为BUZHIZUOYE并从msg中获得并输出听课学生名单,然后输出
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值