运行时异常由程序逻辑错误引起,无需强制捕获;2. 常见类型包括NullPointerException、ArrayIndexOutOfBoundsException、ClassCastException、IllegalArgumentException、ConcurrentModificationException和ArithmeticException;3. 多数因未判空、越界访问、类型转换错误、非法参数、并发修改或除零导致;4. 通过参数校验、空值检查和安全操作可有效预防。
Java中的运行时异常(RuntimeException)是程序在运行期间可能出现的错误,通常由程序逻辑问题引起,不需要强制捕获或声明。以下是常见的运行时异常及其典型场景。
NullPointerException
当尝试访问一个空对象的成员(如方法或属性)时抛出。
常见情况包括:- 未初始化的对象直接调用方法
- 从集合或数据库查询返回null后未判空
- 自动拆箱时包装类为null
ArrayIndexOutOfBoundsException
访问数组时下标超出有效范围(负数或大于等于数组长度)。
例如:- 循环中索引控制错误
- 对空数组或长度不足的数组进行越界访问
ClassCastException
尝试将对象强制转换为不兼容的类型时发生。
典型场景:- 向下转型时父类引用实际指向的不是目标子类
- 泛型集合中存入类型混乱后取值转换
IllegalArgumentException
传递给方法的参数不符合要求。
比如:- 传入负数作为数组长度
- 使用非法格式的字符串转数字
ConcurrentModificationException
在遍历集合时,如果通过非迭代器方式修改了集合内容,会触发此异常。
多发生在:- for-each循环中调用集合的remove()方法
- 多线程环境下共享集合未同步操作
ArithmeticException
数学运算异常,最常见的是除以零。
注意:- 整数除以0会抛出该异常
- 浮点数除以0返回Infinity,不会抛异常









