Прежде чем смотреть на разницу между классами 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