【Springboot】异常_异常基础

异常基础

Exception与Error

Java中,异常都有一个共同的祖先java.lang包中的Throwable类。Throwable类有两个重要的子类:

  • Exception,应用程序可以处理的异常。即发生异常时,应用程序可以通过try-catch来捕获/处理或者向上抛出异常,不应该也不会影响应用程序的运行。
  • Error,应用程序不能处理的异常,应用程序会退出。

Exception可以分成两类:

  • 运行时异常。 RuntimeException类及其子类。编译期间不会检查此类异常,程序运行期间才会出现此类异常。需要程序员添加try-catch或者throw来处理此类异常。
  • 非运行时异常。也称为编译异常,编译期间就需要使用try-catch或者throw来处理,否则无法通过编译。如下所示。
    在这里插入图片描述

受检异常与非受检异常

  • 非受检异常。包括ErrorException及子类。编译期间不检查此类异常。
  • 受检异常。非受检异常之外的异常均属于受检异常。编译期间编辑器检查出的语句异常,需要立即处理,使用try-catchthrow处理。
    在这里插入图片描述

异常使用场景

向上抛出异常,调用方负责处理异常

  1. 一个事务中的异常,需要向上抛出,否则事务可能不能正常回滚。
  2. 方法调用者负责处理异常,当前方法不负责处理这个异常

程序本身捕获异常,自己负责处理

  1. 这个异常被catch不能引起其他逻辑问题,例如读缓存出现异常,应该继续读取源数据库,而不应该影响此次操作。
  2. 异常被catch后,不能影响用户体验,可以考虑使用springboot全局异常提高用户体验。

引用

  • https://segmentfault.com/a/1190000039024792
  • http://www.4k8k.xyz/article/qq_41378597/86223058
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值