在Java中,所有的异常对象都派生自Throwable类的一个实例,在这个类下面有两个子类:Error和Exception。
Error类代表的是JVM虚拟机的内部错误和资源耗尽错误,对于这类错误,除了及时地向用户反馈和尽可能安全地结束以外,应用程序什么也做不了,也不应该去尝试抛出或捕获它。
Exception类则是平时关注的异常,它分为两类,一类是RuntimeException,这类异常都是由程序本身错误引起的,例如数组越界、空指针异常等,一旦出现这类异常,则一定是程序出现了问题;另一类是其他的异常,这类异常不是源自程序本身,而是有I/O这类错误引起的,例如访问的文件不存在等。
在Java中,派生于Error错误和RuntimeException异常共同被称为未检查异常(Unchecked),而其他异常称为已检查异常(Checked)。
较为常见的RuntimeException有:NullPointerException、ArrayIndexOutOfBoundsException、ClassCastException、IIlegalAugumentException、ArithmeticException。
北京 18th