首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >java.lang.RuntimeException与java.lang.Exception的区别

java.lang.RuntimeException与java.lang.Exception的区别
EN

Stack Overflow用户
提问于 2010-02-03 14:39:47
回答 5查看 259.3K关注 0票数 249

有人能解释一下java.lang.RuntimeExceptionjava.lang.Exception之间的区别吗?如果我创建自己的异常,我如何决定扩展哪个异常?

EN

回答 5

Stack Overflow用户

发布于 2010-02-03 14:44:56

在Java中,有两种类型的异常:受控异常和非受控异常。已检查的异常必须由代码显式处理,而未检查的异常不需要显式处理。

对于已检查的异常,要么必须在可能引发异常的代码周围放置try/catch块,要么向方法添加"throws“子句,以指示该方法可能抛出这种类型的异常(必须在调用类或以上类中处理)。

任何从" exception“派生的异常都是已检查的异常,而从RuntimeException派生的类是未检查的。RuntimeExceptions不需要由调用代码显式处理。

票数 208
EN

Stack Overflow用户

发布于 2010-02-03 14:44:39

检查异常,取消检查RuntimeException。

选中意味着编译器要求您在catch中处理异常,或者将您的方法声明为抛出它(或它的一个超类)。

通常,如果API的调用方希望处理异常,则抛出检查异常;如果调用方通常无法处理异常,则抛出未检查异常,例如其中一个参数出错,即编程错误。

票数 55
EN

Stack Overflow用户

发布于 2014-05-08 17:22:14

RuntimeException是Exception类的子类

这是Exception类的许多子类之一。RuntimeException是那些可以在Java Virtual Machine正常操作期间抛出的异常的超类。方法不需要在其throws子句中声明在方法执行期间可能抛出但未被捕获的RuntimeException的任何子类。

层级结构是

java.lang.Object

-java.lang.Throwable

-java.lang.Exception

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2190161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档