代码片--写一个异常

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("换老师或者放假");
        }
        
    }

}

 

posted @ 2017-12-15 22:30  dreamy_java  阅读(660)  评论(0编辑  收藏  举报