Avant d'examiner la différence entre java.lang.RuntimeException
y java.lang.Exception
vous devez connaître les Exception
hiérarchie. Les deux sites Exception
y Error
sont dérivées de la classe Throwable
(qui dérive de la classe Object
). Et la classe RuntimeException
est dérivé de la classe Exception
.
Toutes les exceptions sont dérivées soit de Exception
o RuntimeException
.
Toutes les exceptions qui découlent de RuntimeException
sont appelés non vérifié exceptions. Et toutes les autres exceptions sont vérifié exceptions. Une exception vérifiée doit être attrapée quelque part dans votre code, sinon, il ne compilera pas. C'est pourquoi on les appelle des exceptions vérifiées. En revanche, dans le cas des exceptions non vérifiées, la méthode appelante n'a aucune obligation de les gérer ou de les déclarer.
Par conséquent, toutes les exceptions que le compilateur vous oblige à gérer sont directement dérivées de java.lang.Exception
et toutes les autres que le compilateur ne vous oblige pas à gérer sont dérivées de java.lang.RuntimeException
.
Voici quelques-unes des sous-classes directes connues de l'application 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