黑马程序员技术交流社区
标题:
异常的小小小疑惑
[打印本页]
作者:
付江涛
时间:
2014-4-6 16:22
标题:
异常的小小小疑惑
本帖最后由 付江涛 于 2014-4-6 16:23 编辑
/*
毕老师带电脑上课
电脑会发生蓝屏、冒烟的问题。
蓝屏可以重启解决。
冒烟必须安排做题,并且放假或者换老师。
*/
class LanPingException extends Exception //电脑蓝屏异常
{
LanPingException(String message) //构造方法,传入异常参数
{
super(message);
}
}
class MaoYanException extends Exception //电脑冒烟异常
{
MaoYanException(String message) //构造方法,传入异常参数
{
super(message);
}
}
class ProjectException extends Exception //课时无法完成的异常
{
ProjectException(String message) //构造方法,传入异常参数
{
super(message);
}
}
class Computer //电脑
{
private int state=3; //定义状态值,以便于判断
public void run()throws LanPingException,MaoYanException //声明异常
{
if(state==2) //蓝屏值为1
throw new LanPingException("电脑蓝屏了"); //抛出异常
if(state==3) //冒烟值为2
throw new MaoYanException("电脑冒烟了"); //抛出异常
System.out.println("-----电脑运行"); //正常运行
}
public void reset() //电脑重启方法
{
//stete=1; <<<<<<<<<<<<<<<<<<<<========感觉这个没什么用=====
System.out.println("-----重启电脑");
}
}
class Teacher
{
private String name; //全局变量
private Computer c;//全局变量
Teacher(String name) //构造函数,直接传入老师姓名并建立电脑对象
{
this.name=name;
c=new Computer(); //电脑对象随着老师对象的建立而建立
}
public void prelect()throws ProjectException //抛出异常
{
try //执行
{
c.run(); //执行run方法,判断状态值
}
catch (LanPingException e) //
{
System.out.println(e.toString());
c.reset();
}
catch (MaoYanException e) // <<------判断为此异常,建立冒烟对象----对不对? ① ?
{
test(); //执行test方法
throw new ProjectException("无法完成计划课时,因为:"+e.getMessage()); // ② 抛出异常对象???抛给调用者main方法
}
System.out.println("-----开始讲课");
}
public void test() //test方法
{
System.out.println("做练习吧");
}
}
class ExceptionTest2
{
public static void main(String[] args)
{
Teacher t=new Teacher("毕老师");
try//执行
{
t.prelect(); //执行
}
catch (ProjectException e) //-------------- ③?
{
System.out.println(e.toString());
System.out.println("换老师或者放假");
}
}
}
复制代码
我想知道①②③三个地方怎么用专业点的话怎么说
??
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2