java运行时和非运行时异常

来源:互联网 发布:学雅思的软件 编辑:程序博客网 时间:2024/05/29 15:01

很多面试题都提出了写出java常见的5个运行时异常。现在来总结一下,

java运行时异常是可能在java虚拟机正常工作时抛出的异常。

java提供了两种异常机制。一种是运行时异常(RuntimeExepction),一种是检查式异常(checked execption)。

检查式异常:我们经常遇到的IO异常及sql异常就属于检查式异常。对于这种异常,java编译器要求我们必须对出现的这些异常进行catch 所以 面对这种异常不管我们是否愿意,只能自己去写一堆catch来捕捉这些异常。

运行时异常:我们可以不处理。当出现这样的异常时,总是由虚拟机接管。比如:我们从来没有人去处理过NullPointerException异常,它就是运行时异常,并且这种异常还是最常见的异常之一。


运行期的异常不需要你去捕获,直接交由系统处理,
而非运行期的异常是需要人为去捕获处理的。

它们都是从抛出异常类Throwable继承而来的,它派生出两个类Error和Exception。
由Error派生的子类命名为XXXError,其中词XXX是描述错误类型的词。由Exception派生的子类命名为XXXException,其中词XXX是描述异常类型的词。Error类处理的是运行使系统发生的内部错误,是不可恢复的,唯一的办法是终止运行程序。因此,一般来说开发人员只要掌握和处理好Exception类就可以了。对于运行时异常RuntimeException,我们没必要专门为它写一个异常控制器,因为它们是由于编程不严谨而造成的逻辑错误。只要出现终止,它会自动得到处理。需要开发人员进行异常处理的是那些非运行期异常。

RuntimeExecption在java.lang包下,

下面是由java虚拟机提供的运行时异常

AnnotationTypeMismatchException, 
ArithmeticException, 
ArrayStoreException, 
BufferOverflowException, 
BufferUnderflowException, 
CannotRedoException, 
CannotUndoException, 
ClassCastException, 
CMMException, 
ConcurrentModificationException, 
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 


看到这么多异常,想要找出我们常见的5中运行时异常是非常容易的。  

例如:ClassCastException(类转换异常)

IndexOutOfBoundsException(数组越界)

NullPointerException(空指针)

ArrayStoreException(数据存储异常,操作数组时类型不一致)

还有IO操作的BufferOverflowException异常

0 0
原创粉丝点击