总是记不住什么是受检异常,什么是非受检异常,有时甚至弄混淆,特此简单记录以便复习之用。
异常的分类:java.lang.Throwable
- Error错误:JVM内部的严重问题。无法恢复。程序人员不用处理。
- Exception异常:普通的问题。通过合理的处理,程序还可以回到正常执行流程。要求编程人员要进行处理。
- RuntimeException:也叫非受检异常(unchecked exception).这类异常是编程人员的逻辑问题。应该承担责任。Java编译器不进行强制要求处理。 也就是说,这类异常再程序中,可以进行处理,也可以不处理。
- 受检异常(checked exception).这类异常是由一些外部的偶然因素所引起的。Java编译器强制要求处理。也就是说,程序必须进行对这类异常进行处理。
常见异常:
- 非受检的:NullPointerException,ClassCastException,ArrayIndexsOutOfBoundsException,ArithmeticException(算术异常,除0溢出)
- 受检:Exception,FileNotFoundException,IOException,SQLException.
自我总结:
当受检异常威胁了系统的安全性、稳定性、可靠性、正确性时则必须要处理,不可转换为非受检异常,其它情况下可转换为非受检异常。