一、异常

1、异常处理的关键字

try: 表达式合法执行块
catch: try中表达式非法执行块
finally: 资源打开或关闭执行块(总是被执行,以关闭 为主)
**throw:**用于声明一个方法可能抛出异常(实际的)
throws: 会将本方法发生的异常抛给上一级调用者处理,如果上一级还是没有处理,那就继续抛给更上一级调用者。如果异常一直往上抛,最终被main抛给上一级,交给JVM处理。
必须知道的java基础知识

2、分析: throwable 类有两个子类:错误类(error)、异常类(exception)。

错误类(error): 一般都是JVM的问题,如系统崩溃、虚拟机错误等。这种错误程序会彻底停止,不可恢复,所以没有必要try/catch操作。
异常类(exception): (1)Runtime异常(也称程序员操作异常): 即RutimeException及子类抛出的异常,有如下几类:
NullPointerException: 空指针引用异常
ClassCastException: 类型强转错误
IllegalArgumentException: 传递非法参数异常
ArithmeticException: 算术运算异常
ArrayStoreException: 向数组中存放于声明类型不兼容对象异常
IndexOutBoundsException: 下标越界异常
NegativeArraySizeException: 创建了一个大小为负数的数组错误异常
NumberFormatException: 数字格式异常
SecurityException: 安全异常
UnsuportedOperationException: 不支持的操作异常

(2)Checked异常(不可预期异常):即java认为可以被发现和处理的异常,程序必须显示处理这些异常,否者无法编译通过 (try/catch/finally)。Checked异常分为:IoException和SQLException(只要记住Runtime异常,其他一般都是Checked异常)。

相关文章: