猿问

java.lang.RuntimeException和java.lang.Exception

java.lang.RuntimeException和java.lang.Exception之间的区别

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



慕的地8271018
浏览 1031回答 3
3回答

忽然笑

通常,RuntimeExceptions是可以通过编程方式阻止的异常。例如 NullPointerException,ArrayIndexOutOfBoundException。如果null在调用任何方法之前检查,则NullPointerException永远不会发生。同样ArrayIndexOutOfBoundException,如果您首先检查该指数将永远不会发生。RuntimeException没有被编译器检查,所以它是干净的代码。编辑:这些天人们喜欢RuntimeException它,因为它产生了干净的代码。这完全是个人选择。

繁星点点滴滴

在Java中,有两种类型的异常:已检查异常和未经检查的异常。必须由代码显式处理已检查的异常,而不需要显式处理未经检查的异常。对于已检查的异常,您必须在可能抛出异常的代码周围放置一个try / catch块,或者向该方法添加一个“throws”子句,以指示该方法可能抛出此类异常(必须是在通话类或以上处理)。从“Exception”派生的任何异常都是一个经过检查的异常,而从RuntimeException派生的类是未经检查的。调用代码不需要显式处理RuntimeExceptions。

蓝山帝景

在查看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 
随时随地看视频慕课网APP

相关分类

Java
我要回答