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

网友投稿 630 2023-05-22

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

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

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

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

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

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

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

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

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

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

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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Springboot项目基于Devtools实现热部署步骤详解
下一篇:eclipse实现可认证的DH密钥交换协议
相关文章

 发表评论

暂时没有评论,来抢沙发吧~