java异常小练习

/**
 * Created by patkritLee on 2016/12/18.
 * 毕老师用电脑上课
 * 开始思考上课中出现的问题。
 * 比如问题会是
 * 1.电脑蓝屏
 * 2.电脑冒烟
 * 我们需要对问题进行描述,封装成对象
 *可是当冒烟发生后,会出现讲课无法继续
 * 出现了讲师的问题:课时计划无法完成
 * NoPlanException 可以进行处理
 */
public class TestException01 {
    class LanPingException extends Exception{
        LanPingException(String message){
            super(message);
        }
    }
    class MaoYanException extends Exception{
        MaoYanException(String message){
            super(message);
        }
    }
    class NoPlanException extends Exception{
        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;
        Teacher(String name){
            this.name = name;
            cmpt = new Computer();
        }

        public void prelect() throws NoPlanException{
            try{
                cmpt.run();
            }
            catch(LanPingException e){
                cmpt.reset();
            }
            catch(MaoYanException e){
                test();
                throw new NoPlanException("课时无法继续:"+e.getMessage());
            }
            System.out.println("讲课啦");
         }
         public void test(){
            System.out.print("练习");
         }
    }
    public static void main(String[] args){
        TestException01 tep = new TestException01();
        TestException01.Teacher t = tep.new Teacher("毕老师");
        try{
            t.prelect();
        }
        catch (NoPlanException e){
            System.out.println(e.toString());
            System.out.println("换老师,或者换电脑");
        }
    }
}

你可能感兴趣的:(JAVA)