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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李柯 中级黑马   /  2012-3-25 13:47  /  1611 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

运行时异常与一般异常有何异同?那个该抛;那个不该抛?

评分

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

查看全部评分

3 个回复

倒序浏览
runtime exception和checked exception。一般异常JAVA编译器强制要求我们必需对出现的这些异常进行catch,运行时异常,我们可以不处理。当出现这样的异常时,总是由虚拟机接管。
回复 使用道具 举报
本帖最后由 了无尘 于 2012-3-25 14:19 编辑

一般异常的话你还是可以去尝试拯救一下的,但是运行时异常的话就比较不好办了,比如OutOfMemoryError,内存溢出,一般都是程序本身去查看内存情况,如果内存剩余比较小的,程序本身做一些释放处理并手动gc用来释放一些内存,系统自动的gc是不受控制的,但是如果你写代码释放的话,又很难保证真的能释放掉一些,而且gc的反复调用是很卡的。
运行时异常一般都是jvm层面的异常,基本上都是程序挂掉,很少有情况能通过代码维护解决的。 而这些异常起始就是error,都是无法预期的,比如内存溢出,比如你把网线扒了还要联网之类的。
而一般异常的话,就算抛了只要你捕捉到了也不会导致程序挂掉。而且这样的异常基本上都可以通过代码避免。

评分

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

查看全部评分

回复 使用道具 举报
运行异常就是程序执行不下去了  即RuntimeExceptioin异常     
    比如你要创建一个对象  用对象引用调用它的方法   
  而此时你调用对象出现了异常   那么调用它的方法也就没有实际意义的  程序就得终止了   
  而一般异常 是只编译时期异常   这个异常时可以处理的  也可以抛的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马