异常机制
异常架构以及分类
常见的 RuntimeException
NullPointerException ,ClassNotFoundException ,NumberFormatException
IndexOutOfBoundsException ,IllegalArgumentException ,ClassCastException
NoClassDefFoundException ,SQLException ,NoSuchMethodException
NullPointerException | 空指针异常 | 调用了未经初始化的对象或者是不存在的对象 |
ClassNotFoundException | 指定的类找不到 | 类的名称和路径加载错误 |
NumberFormatException | 字符串转换为数字异常 | 字符型数据中包含非数字型字符 |
IndexOutOfBoundsException | 数组角标越界异常 | 操作数组对象时下标非法 |
IllegalArgumentException | 方法传递参数错误 | 如除数为0 |
ClassCastException | 数据类型转换异常 |
|
NoClassDefFoundException | 未找到类定义错误 |
|
SQLException | SQL 异常 | SQL 语句错误 |
NoSuchMethodException | 方法不存在异常 |
|
throw 和 throws
throw:用在方法体内,抛出的是一个异常实例,如 throw new Exception(“自定义异常”)。
throws:用在方法声明后面,由该方法的调用者来进行异常的处理(程序可能会发生该异常)。
final、finally、finalize()
final:用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,被其修饰的类不可继承。
finally:异常处理语句结构try-catch-finally的一部分,表示总是执行。
finalize():当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。像是一个对象生命周期的临终方法,被系统调用则代表该对象即将“死亡”。但我们主动调用时则不生效。