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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 月时微 中级黑马   /  2013-6-19 12:46  /  1482 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

运行时异常与一般异常有何异同?

5 个回复

正序浏览
运行时异常可以不在方法上声明,编译能通过。一般异常要先声明,编译才可以通过。
回复 使用道具 举报
异常表示程序运行过程中可能出现的非正常状态
运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。
java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。

评分

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

查看全部评分

回复 使用道具 举报
运行时异常编译可以通过,运行时出了问题才会报异常。
其他异常编译时就不可以通过。
回复 使用道具 举报
runtime exception,也称运行时异常,我们可以不处理。当出现这样的异常时,总是由虚拟机接管。比如:我们从来没有人去处理过NullPointerException异常,它就是运行时异常,并且这种异常还是最常见的异常之一。 checked 异常也就是我们经常遇到的IO异常,以及SQL异常都是这种异常。对于这种异常,JAVA编译器强制要求我们必需对出现的这些异常进行catch。所以,面对这种异常不管我们是否愿意,只能自己去写一大堆catch块去处理可能的异常。

评分

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

查看全部评分

回复 使用道具 举报
对于一般可能出现的异常需要显示地catch或者在函数声明时throws, 而对于RuntimeException异常可以不这么做也不会报错. 就像数组脚标越界异常, 只要有数组存在就可能出错, 如果都要程序员来处理就太麻烦了.

而且Java不希望这样的异常被异常处理机制处理, 因为这些异常很可能会影响到异常语句之后的内容, 如果被处理的话, 即使程序能通过编译得到结果, 得到的结果也很可能是错误的.

评分

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

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马