Administrator
Administrator
发布于 2026-01-23 / 13 阅读
0
0

java异常情况

Throwable

Error

VirtulMachineError

StackOverFlowError

OutOfMemoryError

AWTError

Exception

IOException

EOFException

FileNotFoundException

RuntimeException

ArrithmeticException

MissingResourceException

ClassNotFoundException

NullPointerException

IllegalArgumentException

ArrayIndexOutOfBoundsException

UnkownTypeException

Error(一般不建议业务代码捕获处理)

  • Error:通常表示 JVM/系统层面严重问题,应用往往无法/不应该尝试恢复(更多是记录、告警、尽快失败)。

  • VirtualMachineError:JVM 自身资源/状态出现严重问题的父类,常见子类就是 OOM、栈溢出等。

  • StackOverflowError:线程栈深度耗尽(无限递归、递归过深、局部变量过大等);通常需要改代码结构(终止递归、改迭代、减少栈占用)。

  • OutOfMemoryError:堆/元空间/直接内存等内存耗尽;可能是内存泄漏、对象过大、并发过高、配置不合理;需要分析内存占用与 GC。

  • AWTError:AWT 图形界面子系统的严重错误(桌面 UI 环境相关);服务端程序一般很少遇到。

Exception(程序可预期/可处理的问题)

  • Exception:应用层“异常情况”的父类;其中一部分是受检异常(编译器要求处理),一部分是运行时异常。

  • IOException:I/O 相关的受检异常(读写文件、网络流等失败);常见原因:权限、磁盘、网络、连接中断、文件不存在。

  • EOFExceptionIOException 的子类,读到了流的末尾(End Of File)但你的代码还期望继续读;常见于协议解析/文件格式读取。

  • FileNotFoundExceptionIOException 的子类,文件找不到或无法打开(路径错误、权限不足、被占用等)。

  • RuntimeException:运行时异常的父类(unchecked);通常是编程错误或非法参数/状态,编译器不强制捕获。

  • ArithmeticException(你写成 Arrithmetic):算术错误,典型是整数除以 0;也可能来自其他算术异常情况。

  • MissingResourceException:资源缺失(常见于 ResourceBundle 国际化资源找不到 key/文件);它是 运行时异常

  • ClassNotFoundException:类找不到(通常是 Class.forName/类加载器加载失败);它是 受检异常,常见于依赖缺失、类名写错、类路径不对。

  • NullPointerException:空指针(对 null 调用方法/访问字段);通常是未做空判断或对象生命周期管理问题。

  • IllegalArgumentException:方法入参非法(值范围不对、格式不对、为 null 等);你代码里用它做参数校验就很合适。

  • ArrayIndexOutOfBoundsException:数组下标越界(index < 0 或 >= length);通常是循环边界/索引计算错误。


评论