黑马程序员技术交流社区
标题:
异常处理问题
[打印本页]
作者:
HM何伟
时间:
2013-3-30 22:39
标题:
异常处理问题
本帖最后由 HM何伟 于 2013-4-1 00:07 编辑
当i=1时,我这个程序怎出现了死循环啊?
/*
老师上课这个问题,用自己的笔记本
笔记本事物
开机运行功能
2个异常,蓝屏,冒烟
老师事物
上课功能
*/
class LanPingException extends Exception{
LanPingException(String msg)
{
super(msg);
}
}
class MaoYanException extends Exception{
MaoYanException(String msg)
{
super(msg);
}
}
class TeachStopException extends Exception{
TeachStopException(String msg)
{
super(msg);
}
}
class FixComputer{
public void Fix()
{
System.out.println("把电脑修好了");
}
}
class Teacher{
private String name;
Teacher(String name)
{
this.name=name;
}
Computer co=new Computer();
FixComputer fi=new FixComputer();
public void teachxue()throws TeachStopException
{
try
{
co.run();
System.out.println(name+"老师在上课");
}
catch (LanPingException e)
{
System.out.println(e.getMessage());
co.result();
teachxue();
}
catch(MaoYanException e)
{ System.out.println(e.getMessage());
this.function();
}
}
public void function()
{
System.out.println("大家做练习吧");
fi.Fix();
}
}
class Computer{
private int i=1;
public void run()throws LanPingException,MaoYanException
{
if (i==1)
throw new LanPingException("电脑蓝屏了");
if(i==2)
throw new MaoYanException("电脑冒烟了");
System.out.println("电脑正常开机运行");
}
public void result()
{
System.out.println("电脑重启");
}
}
class ComputerTest{
public static void main(String[] args)
{ Teacher te=new Teacher("石松老师");
try
{
te.teachxue();
}
catch (TeachStopException e)
{
te.function();
}
}
}
复制代码
作者:
许庭洲
时间:
2013-4-5 07:24
值得学习ing!
作者:
谢波
时间:
2013-4-5 08:05
重启后 应该将 i 改变,你只打印了 灭有改变 i 的值
作者:
谢达
时间:
2013-4-5 08:05
public void teachxue()throws TeachStopException
{
try
{
co.run();
System.out.println(name+"老师在上课");
}
catch (LanPingException e)
{
System.out.println(e.getMessage());
co.result();
teachxue(); //问题出在这里。捕捉到LanPingException之后你的程序又会运行到这里
}
catch(MaoYanException e)
{ System.out.println(e.getMessage());
this.function();
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2