学习别人总结记录,比较浅,可能会有问题,欢迎指正。
异常简介
- 顶级父类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