------------------- android培训、java培训、期待与您交流!----------------
/*
毕老师用电脑上课 ,
开始思考上课中出现的问题
比如问题是:
电脑蓝屏。
电脑冒烟
对问题进行描述,封装成对象
可是当冒烟发生后,出现讲课进度无法继续。
出现了讲师的问题,课时计划无法完成。
*/
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());
//test();//执行不到,必须写前面才能执行到
}
System.out.println("讲课");
}
public void test()
{
System.out.println("练习");
}
}
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("换老师或者放假");
}
}
}