A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 ☆星痕泪 于 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。

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

8 个回复

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

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

回复 使用道具 举报

?
盆友你清楚不?我前面视频没回头看,另外关于给电脑设定状态,我还是高不清楚啊?
  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:15
1.RuntimeException,也就是运行时异常,表示你的代码本身存在BUG,比如你提到的ArrayIndexOutOfBoundsExce ...

看来我还是没把那里看清楚,得回头再看看了理解哈。懂了些了。灰常感谢
回复 使用道具 举报
runtimeException就是你希望在编译的时候不报错,而在运行时检测到异常的时候程序才停止。
一句话,这个是运行时异常,而不是编译时异常!

评分

参与人数 1技术分 +1 收起 理由
杨增坤 + 1

查看全部评分

回复 使用道具 举报
当程序出现异常不需要调用者处理,也就是不需要使用try{}catch(){}或者throw语句。
程序会自动停下来让编程人员修改代码。
比如空指针异常、数组角标越界异常等。

评分

参与人数 1技术分 +1 收起 理由
杨增坤 + 1

查看全部评分

回复 使用道具 举报
楼主,您好!
如果您的问题解决了,请把您问题的未解决更改为已解决
谢谢合作!
回复 使用道具 举报
杨增坤 发表于 2013-9-10 09:01
楼主,您好!如果您的问题解决了,请把您问题的未解决更改为已解决!谢谢合作! ...

实在不好意思,电脑放家里,上班没看到。现在才回来
这边也非常感谢楼下的盆友,网上找的答案好多都是看的晕晕的。这下理解来了。{:soso_e113:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马