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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 谢明 中级黑马   /  2012-3-9 13:53  /  2455 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

5 个回复

倒序浏览
异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常可以用try catch捕捉处理,但是并不要求必须声明抛出未被捕获的运行时异常。 比如RuntiimeException,,大概就这个意思
回复 使用道具 举报
一般异常Java编译器强制要求处理这类异常,如果不处理这类异常,程序将不能被编译。
运行时异常我们可以不处理,出现运行时异常之后,要么是线程中止,要么是主程序终止。
回复 使用道具 举报
首先,建议楼主先进行问题搜索,这个问题我都看到好几次了....
然后,我以前的看法:
It’s interesting to note that the only Throwable subclasses that provide the cause argument in the constructor are the three fundamental exception classes Error (used by the JVM to report system errors), Exception, and RuntimeException,这是我从thinkinginjava摘录的一句话,你可以将runtimeException直接理解成与error,exception并列的,
通常不需要你去处理,也就是不用抛出和声明,也不用try处理,这是虚拟机会做的工作,你只要在出现运行时异常时修改你的bug,因为出现这种异常并不是语法错误而是你的程序有问题,重新设计修改完善才是解决办法。泛型就是一个很好的例子,它的出现将一个runtime异常转移成了编译时的ClassCastException类型转换异常,提高了安全性。

评分

参与人数 1技术分 +1 收起 理由
房宝彬 + 1

查看全部评分

回复 使用道具 举报
Throwable是所有Java程序中错误处理的父类,有两种子类:Error和Exception。

Error:表示由JVM所侦测到的无法预期的错误,由于这是属于JVM层次的严重错误,导致JVM无法继续执行,因此,这是不可捕捉到的,无法采取任何恢复的操作,顶多只能显示错误信息。

Exception:表示可恢复的例外,这是可捕捉到的。
回复 使用道具 举报
Throwable是java中所有异常的父类,他有两个子异常:Error和Exception。
RuntimeException(运行时异常),是Exception的子类。
Error:上面说的已经很好了。
Exception:代表一些可以捕捉到的异常,他的子类中有包括两种:编译时被检测异常和运行时异常。
编译时被检测异常:如果遇到这样的异常,要么处理掉,要么声明这个异常,不然编译是不能通过的!
运行时异常:遇到这样的异常,你可以不处理,也不声明这个异常,但是编译都会通过,但是执行的时候就会出错。
如果我们要定义一个异常,这个异常发生后处理不了,必须修改源码的,我们就可以让它继承RuntimeException。

评分

参与人数 1技术分 +1 收起 理由
房宝彬 + 1

查看全部评分

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