如何判断非运行时异常和运行时异常

目录

问题:

作用:

方法:

1.是否可以通过程序逻辑去避免错误

2.通过场景

3.通过继承关系

4.通过类名

常见的非运行时异常:

常见的运行时异常:


问题:

刷面经,博客记录输出,加深印象 2025.3.2 希望毕业前可以找到工作。

作用:

可以通过是哪些异常来判断是自己代码的逻辑错误还是外部环境错误。

方法:

1.是否可以通过程序逻辑去避免错误

  • 一般情况下,运行时异常可以通过代码的逻辑去避免,比如空指针异常等等。
  • 非运行时异常,大多数由外部因素引起,即使修改代码的逻辑也避免不了,比如文件找不到等等。

2.通过场景

  • 程序逻辑错误,比如程序忘了判断了 空指针,索引越界等等
  • 示例:
    • 访问空对象的成员 → NullPointerException
    • 数组索引超出范围 → ArrayIndexOutOfBoundsException
    • 将字符串转换为数字失败 → NumberFormatException
  • 如文件不存在、网络中断、数据库连接失败等
  • 示例:
    • 类加载失败 → ClassNotFoundException
    • 数据库查询失败 → SQLException
    • 文件不存在 → FileNotFoundException

3.通过继承关系

  • Error和Exception都继承了Throwable
  • 如果继承了RuntimeException就是运行时异常,没有则非运行时异常。

4.通过类名

  •  运行时异常
    • 越界、非法、空指针等词汇
  • 非运行时异常
    • 找不到、失败、中断等词汇。

常见的非运行时异常:

异常名称

描述

FileNotFoundException

尝试打开一个不存在的文件时抛出。

IOException

输入/输出操作失败时抛出,例如读取文件、写入文件等。

SQLException

数据库操作失败时抛出,例如 SQL 查询语法错误或连接问题。

ClassNotFoundException

尝试通过反射加载类时,找不到指定的类时抛出。

InterruptedException

线程被中断时抛出,通常用于多线程编程中。

NoSuchFieldException

尝试访问类中不存在的字段时抛出。

NoSuchMethodException

尝试调用类中不存在的方法时抛出。

ParseException

解析字符串为日期或其他格式时发生错误时抛出(如使用SimpleDateFormat)。

常见的运行时异常:

异常名称

描述

NullPointerException

尝试访问空对象的成员(方法或属性)时抛出。

ArrayIndexOutOfBoundsException

访问数组时索引超出范围时抛出。

ArithmeticException

数学运算错误时抛出,例如除以零。

ClassCastException

强制类型转换失败时抛出。

IllegalArgumentException

方法接收到非法参数时抛出。

IllegalStateException

对象的状态不适合当前操作时抛出。

IndexOutOfBoundsException

访问集合(如List)时索引超出范围时抛出。

NumberFormatException

将字符串转换为数字失败时抛出(如使用Integer.parseInt())。

UnsupportedOperationException

调用不支持的操作时抛出,例如对不可修改的集合调用修改方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值