Throwable 是所有Java程序中错误处理的父类,有两种资类:Error和 Exception。
Error:表示由JVM所侦测到的无法预期的错误,由于这是属于JVM层次的严重 错误,导致JVM无法继续执行,因此,这是不可捕捉到的,无法采取任何恢复的操作,顶 多只能显示错误信息。
Exception:表示可恢复的例外,这是可捕捉到的。
1.运行时异常:都是RuntimeException类及其子类异常,如 NullPointerException(空指针异常)、IndexOutOfBoundsException(下标越界异常)等, 这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理。这些异常一般是由程序 逻辑错误引起的,程序应该从逻辑角度尽可能避免这类异常的发生。运行时异常的特点是 Java 编译器不会检查它,也就是说,当程序中可能出现这类异常,即使没有用try-catch 语句捕获它,也没有用throws子句声明抛出它,也会编译通过。
2.非运行时异常(编译异常):是RuntimeException以外的异常,类型上都属于Exception 类及其子类。从程序语法角度讲是必须进行处理的异常,如果不处理,程序就不能编译通过。 如IOException、SQLException 等以及用户自定义的Exception 异常,一般情况下不自定 义检查异常。
常见的RunTime异常几种如下:
NullPointerException- 空指针引用异常
ClassCastException- 类型强制转换异常。
IllegalArgumentException- 传递非法参数异常
ArithmeticException- 算术运算异常
ArrayStoreException- 向数组中存放与声明类型不兼容对象异常
IndexOutOfBoundsException- 下标越界异常
NegativeArraySizeException- 创建一个大小为负数的数组错误异常
NumberFormatException- 数字格式异常
SecurityException- 安全异常
UnsupportedOperationException- 不支持的操作异常