/*
需求:毕老师用电脑上课。
可能出现的问题
比如: 电脑蓝屏
电脑冒烟
要对问题进行描述,封装成对象。
可是当冒烟发生后,出现讲课进度无法继续。
出现了讲师的问题:可是计划无法完成
*/
class LanPingException extends Exception
{
LanPingException(String msg)
{
super(msg);
}
}
class MaoYanException extends Exception
{
MaoYanException(String message)
{
super(message);
}
}
class NoPlanException extends Exception
{
NoPlanException(String msg)
{
super(msg);
}
}
class Computer
{
private int state=2;
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;//重启后状态变为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是程序停止的标志,不要将语句写在其后,一旦发生相应异常执行不到语句,编译会不通过。
throw new NoPlanException("课时无法继续");
}
System.out.println("讲课");
}
public void test()
{
System.out.println("练习");
}
}
class ExceptionText
{
public static void main(String[] args)
{
Teacher t=new Teacher("毕老师");
try
{
t.prelect();
}
catch (NoPlanException e)
{
System.out.println("换老师或放假");
}
}
}
super(msg);里面的参数传递给谁啦?像程序中的语句throw new LanPingException("蓝屏"); 其中的“蓝屏”传递给谁啦?程序运行时没有效果啊。请各位详细讲解一下。
|