Throwable类 Java中所以异常的超类,在Java中所有的异常,错误的基类就是Throwable类。
Throwable –| Exception 异常 可以处理,代码还有拯救的可能性 –| Error 错误 GG思密达
Throwable常用方法: Constructor: Throwable(); Throwable构造方法,Throwable类对象中,存储的异常或者 错误信息为null Throwable(String message); Throwable构造方法,Throwable类对象 中,存储的异常或者错误信息为message Method: String getMessage(); 获取Throwable对象中存储的异常或者错误信息 String toString(); 返回当前异常或者错误的简要描述 void printStackTrace(); 展示错误的前因后果,【红色字体】
Exception 异常,可以处置 Error 错误,不可以处置,只能避免
try - catch 结构 try - catch - finally 结构
格式: try { // 有可能出现异常代码 } catch (/* 对应处理的异常对象 */) { // 处理方式 }
throw 在方法内抛出异常 throws 在【方法声明】位置,告知调用者当前方法有哪些异常抛出 声明的异常需要生成对应的文档注释
捕获之后,代码可以正常运行,要保证处理之后的异常不会在导致其他问题。 例如: 用户名密码错误,不能采用捕获异常。 用户指定路径问题,也不能采用捕获异常。
抛出的确可以解决很多问题,并且可以让代码健壮性很强。到用户层面说什么都不能抛出异常。 所谓不能抛出,是指不能讲错误信息直接甩到用户脸上。
用户密码错误情况: 1. 捕获异常 2. 通过异常处理 catch将错误抛出 3. 给予用户的友好提示
运行时异常: JVM在运行的过程中可以非检查异常 例如: ArrayIndexOutOfBoundException NullPointerException StringIndexOutOfBoundException ArithmeticException
这些异常在代码中如果出现,不需要代码中强制进行捕获或者抛出处理。
代码运行的过程中存在一定的生活化 例如: 用户名密码错误 NoGirlFriendException 没有女朋友异常
自定义异常格式: class 自定义异常类名 extends Exception { // No Fields Constructor // String Field Constructor } 自定义异常类名: 必须Exception结尾!!!