异常浅显总结

189 阅读1分钟

学习别人总结记录,比较浅,可能会有问题,欢迎指正。

异常简介

  • 顶级父类Throwable,两个子类Error和Exception。
  • Exception又分为检查时异常和运行时异常(RuntimeException)
  • Error通常指程序无法处理的异常,如VirtualMachineError、OutOfMemoryError、StackOverflowError
  • 检查时异常是程序编译时,必须处理的异常,否则程序编译不过。
  • 运行时异常是程序运行期间的异常,是程序建议处理的异常,一般也是程序员造成的异常。

处理方法

  • throws

用于方法上

    public void saveInfo() throws Exception {
        // 方法体
    }
  • try catch

用于方法内

try {
    // 业务代码
}catch(Exception e){
    // 异常处理
} finally {
    // 常用来关闭流、jdbc等,非必须
}
  • try-with-resource

对于资源,如FileInputStream继承了Closeable或者AutoCloseable,可以不用finally关闭资源,会自动关闭,使用方式如下:

try (FileInputStream fis = new FileInputStream("D:/a.txt")) {
    fis.read();
}catch(Exception e){
    // 异常处理
}

自定义异常

一般业务中会需要使用自定义异常,使用方法继承RuntimeException,然后在业务中,主动throw自定义异常

常见的检查时异常

File、IO相关的异常:

  • FileNotFoundException
  • IOException

反射相关的异常:

  • ClassNotFoundException
  • NoSuchMethodException
  • NoSuchFieldException

invoke 相关异常

  • InvocationTargetException
  • IllegalAccessException

SQLException

常见的运行时异常

  • NullPointException
  • IndexOutOfBoundsException
  • ClassCastException
  • NumberFormatException
  • IllegalArgumentException
  • ArithmoticException
  • SecurityException
  • UnsupportOperationException