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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 呆呆呆 中级黑马   /  2013-12-3 23:51  /  1391 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. public static void start() throws IOException, RuntimeException{

  2. 02

  3. 03 throw new RuntimeException("Not able to Start");

  4. 04 }

  5. 05

  6. 06 public static void main(String args[]) {

  7. 07 try {

  8. 08 start();

  9. 09 } catch (Exception ex) {

  10. 10 ex.printStackTrace();

  11. 11 } catch (RuntimeException re) {

  12. 12 re.printStackTrace();

  13. 13 }

  14. 14 }
复制代码

麻烦解决一下问题啊,编译错误。

评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 神马都是浮云

查看全部评分

11 个回复

倒序浏览
catch的顺序反了,RuntimeException re永远也无法执行,因为Exception是它的父类,
回复 使用道具 举报
确实是cath的顺序反了  Exceptionahi所以异常的父类   理论上是可以处理任何异常的
回复 使用道具 举报
Faner 发表于 2013-12-4 01:15
确实是cath的顺序反了  Exceptionahi所以异常的父类   理论上是可以处理任何异常的 ...

电风扇你好。
回复 使用道具 举报

???????????:o
回复 使用道具 举报
fanner不就是电风扇吗?
回复 使用道具 举报
Faner 高级黑马 2013-12-4 01:37:43
7#
汪洋大海 发表于 2013-12-4 01:35
fanner不就是电风扇吗?

哥们   fanner 确实是电风扇 可是我是faner:@
回复 使用道具 举报
Faner 发表于 2013-12-4 01:37
哥们   fanner 确实是电风扇 可是我是faner

我的qq是282067274你来加我吧。
回复 使用道具 举报
Exception是父类异常
RuntimeException是子类异常
上边这句话肯定是错的。应该是先子类异常,然后父类异常。
如果反过来,那抛出异常都被父类异常捕获走了,而且在父类异常也判断不出具体是什么异常。
所以应该从子类异常开始捕获,如果子类异常都不能捕获,最后再到父类异常。
而且JAVA也在这方面做了处理了,如果前边的异常是父类异常,后边的是子类异常,那么代码编译就不会通过

评分

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

查看全部评分

回复 使用道具 举报
本帖最后由 王家胜 于 2013-12-5 19:07 编辑

我只是提示这个最合理

评分

参与人数 1技术分 -1 收起 理由
乔兵 -1 请勿抄袭

查看全部评分

回复 使用道具 举报
.Mr 中级黑马 2013-12-4 14:14:25
11#
多catch父类的catch放在最下面。
正确的代码应该这样
public static void start() throws IOException, RuntimeException{

02

03 throw new RuntimeException("Not able to Start");

04 }

05

06 public static void main(String args[]) {

07 try {

08 start();

09 } catch (RuntimeException re) {

12 re.printStackTrace();

13 } catch (Exception ex) {

10 ex.printStackTrace();

11 }

14 }

评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1

查看全部评分

回复 使用道具 举报
下次问题解决了就把类型改成提问结束!谢谢!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马