Springboot全局异常捕获及try catch区别解析

作者:江湖阿强 时间:2022-03-02 17:44:07 

今天在码代码的时候突然想到这个问题,觉得有点困惑。在网上也翻阅不少帖子其中有一个帖子给了我一个思路,其实也是解释了基础概念。

概念一:try catch 语句在try里面捕获到异常之后会进入catch子句内,执行catch内的代码。

概念二:springboot中的全局异常处理在捕获到异常之后,异常代码之后的语句是不会再运行了的

那么从我一开始思路理解开始,这个时候我觉得这2个的功能用处都是在代码出现异常情况的时候对其进行处理,且向调用者(或者就是用户)返回一个友好的提示,那这2个有啥区别呢,重点来了……

业务场景一:某个字段必须保证唯一,例如:不允许存在同一个name的数据,这是大家开发过程中很常见的了,调用新增接口的时候你需要先查一遍该数据在库里是否存在,如果存在就返回“该数据已存在”,并且不再执行后面的插入动作。到此时我个人觉得try catch 和全局异常处理达到的效果是一样的。

业务场景二:某个字段是需要提示用户“该数据已存在”,但是但是但是……我也允许你新增一个同样的数据,我就只是单纯要提示一下你而已,并不阻止你继续插入这条数据。这个时候有木有突然觉得就不一样了,如果是全局异常处理的话,提示你“该数据已存在”之后就不运行后面的插入代码了,而try catch是可以在抛出异常信息“该数据已存在”的时候进入catch代码块执行插入操作的。

就是不要认为在有全局异常处理之后,try catch就没用了。不知道我这样算不算牵强的解释

图一(使用只全局异常的情况下,无法执行到else子句内的insert操作)

Springboot全局异常捕获及try catch区别解析

图二(在抛出异常之后,进入catch子句仍然执行insert动作)

Springboot全局异常捕获及try catch区别解析

来源:https://www.cnblogs.com/aqiangtester/p/13174114.html

标签:Spring,boot,全局,异常,捕获,try,catch
0
投稿

猜你喜欢

  • Java泛型类与泛型方法的定义详解

    2023-11-25 01:29:22
  • Java多线程 两阶段终止模式Two-Phase Termination Patter

    2023-11-29 04:47:04
  • springboot实现FastJson解析json数据的方法

    2023-11-27 22:12:48
  • 浅谈Java中向上造型向下造型和接口回调中的问题

    2023-11-09 13:51:46
  • ReadWriteLock接口及其实现ReentrantReadWriteLock方法

    2023-11-24 01:46:52
  • Android使用Rotate3dAnimation实现3D旋转动画效果的实例代码

    2023-07-30 12:21:29
  • Android RecyclerView基本使用详解

    2023-07-24 21:13:30
  • VSCode 搭建 Arm 远程调试环境的步骤详解

    2023-06-27 08:54:36
  • 简述Java中的四种引用类型

    2023-11-29 00:46:56
  • Java 关于时间复杂度和空间复杂度的深度刨析

    2023-11-10 16:07:39
  • 详解Spring注入集合(数组、List、Map、Set)类型属性

    2023-11-28 00:16:53
  • SpringBoot集成Beetl后统一处理页面异常的方法

    2023-11-10 19:57:55
  • Java关键字instanceof用法及实现策略

    2023-09-23 06:05:38
  • 详解备忘录模式及其在Java设计模式编程中的实现

    2023-08-24 22:34:02
  • Spring Boot 在启动时进行配置文件加解密的方法详解

    2023-11-12 17:13:54
  • Android RecyclerBarChart绘制使用教程

    2023-06-19 12:18:36
  • Java设计模式之java命令模式详解

    2023-11-13 16:00:36
  • java搭建ftp/sftp进行数据传递的全过程

    2023-11-29 15:08:10
  • MyBatis-Plus多表联查的实现方法(动态查询和静态查询)

    2023-11-23 22:26:45
  • C++实现leetcode(3.最长无重复字符的子串)

    2023-06-25 03:17:22
  • asp之家 软件编程 m.aspxhome.com