为了账号安全,请及时绑定邮箱和手机立即绑定

java.lang.RuntimeException和java.lang.Exception

java.lang.RuntimeException和java.lang.Exception

慕的地8271018 2019-08-15 15:38:29
java.lang.RuntimeException和java.lang.Exception之间的区别有人请解释之间的差异java.lang.RuntimeException和java.lang.Exception?如果我创建自己的异常,如何决定扩展哪一个?
查看完整描述

3 回答

?
忽然笑

TA贡献1806条经验 获得超5个赞

通常,RuntimeExceptions是可以通过编程方式阻止的异常。例如 NullPointerExceptionArrayIndexOutOfBoundException。如果null在调用任何方法之前检查,则NullPointerException永远不会发生。同样ArrayIndexOutOfBoundException,如果您首先检查该指数将永远不会发生。RuntimeException没有被编译器检查,所以它是干净的代码。

编辑:这些天人们喜欢RuntimeException它,因为它产生了干净的代码。这完全是个人选择。


查看完整回答
反对 回复 2019-08-15
?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

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

对于已检查的异常,您必须在可能抛出异常的代码周围放置一个try / catch块,或者向该方法添加一个“throws”子句,以指示该方法可能抛出此类异常(必须是在通话类或以上处理)。

从“Exception”派生的任何异常都是一个经过检查的异常,而从RuntimeException派生的类是未经检查的。调用代码不需要显式处理RuntimeExceptions。


查看完整回答
反对 回复 2019-08-15
?
蓝山帝景

TA贡献1843条经验 获得超7个赞


在查看java.lang.RuntimeException和java.lang.Exception类之间的区别之前,您必须知道Exception层次结构。两个类Exception和Error类都派生自类Throwable(派生自类Object)。这个班RuntimeException是从班级派生出来的Exception。


所有例外都来自Exception或RuntimeException。


源自的所有异常RuntimeException都称为未经检查的异常。所有其他例外都是经过检查的例外。必须在代码中的某处捕获已检查的异常,否则将无法编译。这就是为什么它们被称为检查异常。另一方面,对于未经检查的异常,调用方法没有义务处理或声明它。


因此,编译器强制您处理的所有异常都是直接派生自的java.lang.Exception,而编译器不强制您处理的所有其他异常派生自java.lang.RuntimeException。


以下是RuntimeException的一些直接已知子类。


AnnotationTypeMismatchException,

ArithmeticException,

ArrayStoreException,

BufferOverflowException,

BufferUnderflowException,

CannotRedoException,

CannotUndoException,

ClassCastException,

CMMException,

ConcurrentModificationException,

DataBindingException,

DOMException,

EmptyStackException,

EnumConstantNotPresentException,

EventException,

IllegalArgumentException,

IllegalMonitorStateException,

IllegalPathStateException,

IllegalStateException,

ImagingOpException,

IncompleteAnnotationException,

IndexOutOfBoundsException,

JMRuntimeException,

LSException,

MalformedParameterizedTypeException,

MirroredTypeException,

MirroredTypesException,

MissingResourceException,

NegativeArraySizeException,

NoSuchElementException,

NoSuchMechanismException,

NullPointerException,

ProfileDataException,

ProviderException,

RasterFormatException,

RejectedExecutionException,

SecurityException,

SystemException,

TypeConstraintException,

TypeNotPresentException,

UndeclaredThrowableException,

UnknownAnnotationValueException,

UnknownElementException,

UnknownTypeException,

UnmodifiableSetException,

UnsupportedOperationException,

WebServiceException 


查看完整回答
反对 回复 2019-08-15
  • 3 回答
  • 0 关注
  • 1030 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号