一个程序猿代码质量的好坏不是看你使用了什么样的设计模式,多么高深的技术点,常常对于程序中异常的处理,可以很好的反应你是不是个老手。
Java是面向对象的语言,对于程序中可能会出现的“意外”,肯定也是会有一个意外对象来告知,关于异常常涉及到三个类
Throwable Exception Error 类 Throwable位于这一类层次的最顶层,只有它的后代才可以做为一个例外被抛弃 java.lang.Throwable
- Error错误:JVM内部的严重问题。无法恢复。程序人员不用处理。
- Exception异常:普通的问题。通过合理的处理,程序还可以回到正常执行流程。要求编程人员要进行处理。
- RuntimeException:也叫非受检异常(unchecked exception).这类异常是编程人员的逻辑问题。应该承担责任。Java编译器不进行强制要求处理。 也就是说,这类异常在程序中,可以进行处理,也可以不处理。
- 非RuntimeException:也叫受检异常(checked exception).这类异常是由一些外部的偶然因素所引起的。Java编译器强制要求处理。也就是说,程序必须进行对这类异常进行处理。
检查异常(checked exception)和非检查异常(unchecked exception )
- 检查异常(checked exception)几种处理方式:
- 继续抛出,消极的方法,一直可以抛到java虚拟机来处理
- 用try…catch捕获
非检查异常(unchecked exception )的几种处理方式:
- 捕获
- 继续抛出
- 不处理
注意点
- 检查异常(checked exception)是必须要处理的,不然编译通不过
- 非检查异常(unchecked exception )可以不处理
常见的异常分类
- 非检查异常(unchecked exception ): NullPointerException,ClassCastException,ArrayIndexsOutOfBoundsException,ArithmeticException(算术异常,除0溢出)
- 受检:Exception,FileNotFoundException,IOException,SQLException.
一个非检查异常列子