运行时异常,编译时异常,受检异常与非受检异常分别指什么呢?
我们都知道try,catch可以捕捉异常,但是异常还分很多种情况--你知道吗?
下文笔者讲述异常的具体分类
Java种所有异常还可以分为
下文笔者讲述异常的具体分类
Exception分为: 运行时异常和编译时异常
运行时异常
运行时异常指RuntimeException 类及其子类 指Java运行时产生的异常, 如:NPE(空指针异常) ArrayIndexOutBoundException(下标越界异常) ClassCastException类型转换异常 ArithmeticExecption算术异常 此类异常一般由程序逻辑异常而产生,我们可通过修改代码的方式来避免此类异常
编译时异常
Exception 中除 RuntimeException 及其子类之外的异常我们称之为“编译时异常” 如: JVM根据全限定名加载类时,出现ClassNotFoundException异常 IOException 等 此类异常通常代码中必须使用try,catch或Throw向上抛出异常
Java种所有异常还可以分为
受检异常(checked exception)
非受检异常(unchecked exception)
受检异常
编译器要求必须处理的异常 Exception 中除 RuntimeException 及其子类之外的异常都属于受检异常 编译器会检查此类异常 当编译器检查到应用中的某处可能会此类异常时,将会提示处理本异常 此时我们代码必须编写try,catch或throw抛出,否则无法编译通过
非受检异常
编译器不会进行检查且不强制要求必须处理的异常,无论是否使用try,catch,throw都可编译通过 程序运行时,如果未使用try,catch则抛出异常
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。