RuntimeException,常见的五个运行时异常介绍

首先,先介绍一下Java 异常的分类

首先,所有异常的父类都是Throwable,

往下分,分为Error和Exception,

Error为会使程序崩溃的严重错误,如栈溢出或内存不足

Exception为可以捕获的异常,又可分为编译时异常和运行时异常两种。

接下来,我们介绍一下以下五个常见的运行时异常

1)NullPointerException空指针异常

1.举例说明

运行后,抛出NullPointerException,如图

2.常见原因

  • 调用null对象的方法

  • 访问或修改null对象的字段

  • 获取null数组的长度

  • 访问或修改null数组的槽位

  • 抛出null作为Throwable值

  • 预防措施

  • 在使用对象前进行null检查

  • 使用Optional类来明确处理可能为null的情况

  • 合理设计API,避免返回null

  • 使用Objects.requireNonNull()进行参数验证


2)ArithmeticException数学运算异常

1.举例说明

运行后,抛出抛出ArithmeticException,如图

2.常见原因

整数除以零

其他不合法的算术运算(如取模运算的除数为零)

预防措施

  • 在进行除法运算前检查除数是否为零

  • 对于浮点数运算,除以零不会抛出异常(会得到Infinity或NaN)

  • 使用BigDecimal进行精确计算


3)ArrayIndexOutOfBoundsException数组下标越界异常

1.举例说明

运行后,抛出ArrayIndexOutOfBoundsException,如图

2.常见原因

  • 使用负数索引访问数组

  • 使用大于等于数组长度的索引

  • 循环条件错误导致索引超出范围

  • 预防措施

  • 始终检查数组索引是否在有效范围内

  • 使用增强for循环(for-each)可以避免索引问题

  • 在处理数组时仔细检查循环条件

  • 考虑使用集合类(如ArrayList)代替原始数组


4)ClassCastException类型转换异常

1.举例说明

运行后,抛出ClassCastException,如图

2.常见原因

  • 错误的类型转换假设

  • 在使用泛型集合时未进行类型检查

  • 在多态情况下错误判断对象类型

  • 预防措施

    • 在进行强制转换前使用instanceof进行检查

    • 合理设计类层次结构,减少不必要的类型转换

    • 使用泛型来提供编译时类型安全


5)NumberFormatException数字格式不正确异常[]

1.举例说明

运行后,抛出抛出NumberFormatException,如图

2.常见原因

  • 字符串包含非数字字符

  • 字符串为空或null

  • 数字格式与预期不符(如小数点、正负号位置错误)

  • 预防措施

  • 在转换前验证字符串格式

  • 使用正则表达式检查数字格式

  • 使用try-catch块处理可能的异常

  • 对于用户输入,提供明确的格式提示和验证

---------------------结束------------------

求点赞~!

求评论·~~~!

求收藏~~~~~!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值