package com.dreamy.day04;
/**
* @author dreamy
* 需求:老师用电脑上课
* 开始思考上课中出现的问题。
* 比如问题是:
* 电脑蓝屏
* 电脑冒烟
* 要对问题进行描述,封装成对象。
*
* 可是当冒烟发生后,出现讲课进度无法继续。
* 出现了讲师的问题,课时计划无法完成。
*/
class LanPingException extends Exception{
LanPingException(String message) {
super(message);
}
}
class MaoYanException extends Exception{
MaoYanException(String message) {
super(message);
}
}
class NoPlanException extends Exception{
public NoPlanException(String message) {
super(message);
}
}
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() {
state=1;
System.out.println("电脑重启");
}
}
class Teacher{
private String name;
private Computer cmpt;
public Teacher(String name) {
this.name=name;
cmpt=new Computer();
}
public void prelect() throws NoPlanException{
try {
cmpt.run();
} catch (LanPingException e) {
System.out.println("蓝屏电脑可以重启");
cmpt.reset();
} catch (MaoYanException e) {
System.out.println("冒烟电脑处理不了..");
test();
throw new NoPlanException("课时无法继续"+e.getMessage());
//test();
}
System.out.println("讲课");
}
public void test() {
System.out.println("做练习");
}
}
public class ExceptionTest {
public static void main(String[] args) {
Teacher t=new Teacher("毕老师");
try {
t.prelect();
}catch(NoPlanException e){
System.out.println(e.toString());
System.out.println("换老师或者放假");
}
}
}