Java中的异常

Java中的异常

主要可以分为两大类,即受检异常(checked exception)和 非受检异常(unchecked exception)

受检异常:

对于受检异常来说:如何我们在方法里声明了要有异常,那么在调用这个方法是必须对这个异常进行处理(捕获或者向上抛出),否则的话,编译就无法通过;
这种情况在IO操作中比较常见

非受检异常:

继承自RuntimeException,一般是运行时发生的异常,多是一些代码层面的错误。
非受检异常不用显式的去声明捕获,但是一旦出现异常,程序就会中断。
这种异常一般可以理解为是代码原因导致的。比如发生空指针、数组越界等。所以,只要代码写的没问题,这些异常都是可以避免的。也就不需要我们显示的进行处理。

Throwable

Throwable是java中最顶级的异常类,继承Object,实现了序列化接口,有两个重要的子类:Exception和 Error,二者都是 Java 异常处理的重要子类,各自都包含大量子类。

Error

表示严重的问题,通常是系统级出现的错误,比如OOM内存溢出。
当出现Error时,Java虚拟机会抛出该错误并终止程序的执行,一般情况下无法通过代码来处理或恢复。

以下是几个常用的RuntimeException:

NullPointerException(空指针异常):当尝试访问一个空对象的成员或调用一个空对象的方法时抛出。

IllegalArgumentException(非法参数异常):当方法接收到一个不合法的参数时抛出,例如传入null或不符合预期的值。

IllegalStateException(非法状态异常):当对象的状态不符合方法调用的前提条件时抛出,例如在对象未初始化或已经关闭的情况下调用方法。

IndexOutOfBoundsException(索引越界异常):当访问数组、字符串或集合时使用了无效的索引时抛出,例如访问负数索引或超过容器大小的索引。

UnsupportedOperationException(不支持的操作异常):当调用一个不支持的操作时抛出,例如对只读集合进行修改操作。

ClassCastException(类转换异常):当尝试将一个对象转换为不兼容的类型时抛出,例如将一个不是子类的对象转换为子类类型。

ArithmeticException(算术异常):当出现数学运算错误时抛出,例如除以零或溢出。

这些RuntimeException是Java中常见的异常类型,它们都是继承自RuntimeException类,可以在代码中不进行显式的捕获和处理。

什么是自定义异常,如何使用自定义异常?

自定义异常就是开发人员自己定义的异常,一般通过继承Exception的子类的方式实现。
编写自定义异常类实际上是继承一个API标准异常类,用新定义的异常处理信息覆盖原有信息的过程。
这种用法在Web开发中也比较常见,一般可以用来自定义业务异常。如余额不足、重复提交等。这种自定义异常有业务含义,更容易让上层理解和处理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值