黑马程序员技术交流社区

标题: 菜鸟关于毕老师0912 异常练习中的几个疑问。 [打印本页]

作者: ☆星痕泪    时间: 2013-9-9 23:01
标题: 菜鸟关于毕老师0912 异常练习中的几个疑问。
本帖最后由 ☆星痕泪 于 2013-9-10 17:52 编辑

  1. <P>
  2. public void prelect()</P>
  3. <P>/*在这里是必须要函数抛出(throw)多少个异常就显示(throw)多少异常吗?另外调用此函数的函数也必须要有几个catch是吧?</P>
  4. <P> </P>
  5. <P>*/
  6. {
  7. try
  8. {
  9. cmp.run();
  10. }
  11. catch (lanPingException e)
  12. {
  13. cmp.chongQi();
  14. System.out.println("蓝屏了"+e.getMessage);
  15. }
  16. catch(maoYanException e)//这边抓到了冒烟,就该抛出熟悉的异常noPlanExxception.
  17. {
  18. throw new noPlanException("电脑冒烟了,没法上课.");
  19. }
  20. System.out.println("讲课");
  21. }
  22. }


  23. class PrelectDemo
  24. {
  25. public static void main(String[] args)
  26. {
  27. Teacher t = new Teacher("毕老师");
  28. try
  29. {
  30. t.prelect();
  31. }
  32. catch (noPlanException e)
  33. {
  34. System.out.println("换老师或者放假"+e.noPlanException);
  35. }
  36. </P>
复制代码
如题,小弟在看视屏练习异常时,的疑问,另外顺便弱弱的问句关于runtimeException,什么时候用呢?现在只知道不用标示throw。

作者: 常在河边走_    时间: 2013-9-9 23:11
等等等等等等
作者: 常在河边走_    时间: 2013-9-9 23:15
1.RuntimeException,也就是运行时异常,表示你的代码本身存在BUG,比如你提到的ArrayIndexOutOfBoundsException,数组下标越界,这个属于代码有问题,数组定义的长度不够实际使用,不处理肯定会报错,如果你操作某个模块发现能正常运行,那只是因为代码还没跑到这个错误的地方而已。。控制台一旦报RuntimeException,就必须要处理。。没有例外的。而且,处理RuntimeException,不是try-catch能解决的。。try-catch在这里使用毫无意义。
2.不是RuntimeException,就是编译时异常,异常只有这两种了。比如你在处理文件流时的I/O问题,就属于编译时异常。这个时候用thr{}catch 来捕获或者 throws即可。
作者: ☆星痕泪    时间: 2013-9-9 23:18
常在河边走_ 发表于 2013-9-9 23:11
等等等等等等

?
盆友你清楚不?我前面视频没回头看,另外关于给电脑设定状态,我还是高不清楚啊?
  1. class Computer
  2. {
  3. private int runComputer = 1;//给电脑设定一个状态,默认值为1,
  4. //在设定其他状态值

  5. public void run()throws LanPingException,MaoYanException
  6. //函数将方法抛出后必须要把他们标示出去,如果是runtimeException就不用。
  7. {
  8. if (runComputer == 2)
  9. throw new LanPingException("电脑蓝屏了");//自定义异常显示语句。
  10. if (runComputer == 3)
  11. throw new MaoYanException("电脑冒烟了。");
复制代码

作者: ☆星痕泪    时间: 2013-9-9 23:21
常在河边走_ 发表于 2013-9-9 23:15
1.RuntimeException,也就是运行时异常,表示你的代码本身存在BUG,比如你提到的ArrayIndexOutOfBoundsExce ...

看来我还是没把那里看清楚,得回头再看看了理解哈。懂了些了。灰常感谢

作者: 杨成    时间: 2013-9-10 02:05
runtimeException就是你希望在编译的时候不报错,而在运行时检测到异常的时候程序才停止。
一句话,这个是运行时异常,而不是编译时异常!
作者: 陶智第    时间: 2013-9-10 08:09
当程序出现异常不需要调用者处理,也就是不需要使用try{}catch(){}或者throw语句。
程序会自动停下来让编程人员修改代码。
比如空指针异常、数组角标越界异常等。

作者: 杨增坤    时间: 2013-9-10 09:01
楼主,您好!
如果您的问题解决了,请把您问题的未解决更改为已解决
谢谢合作!

作者: ☆星痕泪    时间: 2013-9-10 17:55
杨增坤 发表于 2013-9-10 09:01
楼主,您好!如果您的问题解决了,请把您问题的未解决更改为已解决!谢谢合作! ...

实在不好意思,电脑放家里,上班没看到。现在才回来
这边也非常感谢楼下的盆友,网上找的答案好多都是看的晕晕的。这下理解来了。{:soso_e113:}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2