总结
本章讲解的是异常处理机制,用于处理程序中可能发生的异常,主要涉及了以下知识点:
异常处理机制可以将程序中的业务代码和异常代码相分离,从而使得开发者可以更加专注于编写业务代码,并使程序更加优雅。
异常的继承结构:异常的顶层基类是 Throwable;继承自 RuntimeException 的类称为运行时异常,否则称为检查异常。
运行时异常在编译阶段没有提示,只是在运行时存在异常才抛出;而检查异常是会在编译时就提示开发者必须处理的异常。
在异常可能发生的地方,通常有两种预防性处理策略:如果开发者认为此时出现的异常最好立即进行处理,那么就可以采用 try…catch 的方式;反之,如果开发者认为此时出现的异常,暂时可以不进行处理,就可以通过 throws 将异常抛出给上一级去处理。
异常对象常用方法有两个:一个方法是 printStackTrace(),用于输出异常的堆栈信息;另一个方法是 getMessage(),用于返回异常详细信息字符串。
异常的 5 个关键字:try 中编写可能存在异常的代码,catch 用于捕获异常并书写异常处理代码,finally 中的代码无论是否出现异常都会被执行(此前有 System.exit()除外),throws 用于声明方法可能会抛出的异常,而 throw 表示手工抛出异常即制造异常并抛出。
自定义异常:如果 JDK 中已有的异常不能满足开发需求,就需要开发者自定义异常。自定义异常需要继承 JDK 中已有的异常,并且通常会结合 if 语句一起使用。
常见的异常类型有 NullPointerException、ClassNotFoundException、IllegalArgumentException、InputMismatchException、IllegalAccessException、ClassCastException、SQLException 和 IOException 等,并且随着学习的深入,大家也会接触更多类型的异常。