Java 异常体系结构类图
常见的 Error
- StackOverflowError:栈溢出,常见于递归无正确出口或递归层级超过栈的深度
- OutOfMemoryError:内存溢出
- 访问量/数据量突然剧增,超出预期
- 内存泄露:代码不规范导致,如向 Map 中不停的添加对象,而该对象的 equals 和 hashCode 方法没有正确重写
常见的 Checked Exception
- IOException:IO 操作时,显式 try-catch 或者 throws
- ClassNotFoundException:使用反射时,显式 try-catch 或者 throws
- NoSuchMethodException:使用反射时,显式 try-catch 或者 throws
- InterruptedException:使用线程 sleep 等操作时,显式 try-catch 或者 throws
常见的 Unchecked Exception(RuntimeException)
- ArithmeticException:算数异常,分母为零
- IllegalArgumentException:参数不合法,如类型不匹配
- IllegalStateException:使用线程相关 API 时候
- IndexOutOfBoundsException:数组越界
- ConcurrentModificationException:多线程情况、错误的删除操作