Springboot全局异常捕获及try catch区别解析
今天在码代码的时候突然想到这个问题,觉得有点困惑。在网上也翻阅不少帖子其中有一个帖子给了我一个思路,其实也是解释了基础概念。
概念一:try catch 语句在try里面捕获到异常之后会进入catch子句内,执行catch内的代码。
概念二:springboot中的全局异常处理在捕获到异常之后,异常代码之后的语句是不会再运行了的
那么从我一开始思路理解开始,这个时候我觉得这2个的功能用处都是在代码出现异常情况的时候对其进行处理,且向调用者(或者就是用户)返回一个友好的提示,那这2个有啥区别呢,重点来了……
业务场景一:某个字段必须保证唯一,例如:不允许存在同一个name的数据,这是大家开发过程中很常见的了,调用新增接口的时候你需要先查一遍该数据在库里是否存在,如果存在就返回“该数据已存在”,并且不再执行后面的插入动作。到此时我个人觉得try catch 和全局异常处理达到的效果是一样的。
业务场景二:某个字段是需要提示用户“该数据已存在”,但是但是但是……我也允许你新增一个同样的数据,我就只是单纯要提示一下你而已,并不阻止你继续插入这条数据。这个时候有木有突然觉得就不一样了,如果是全局异常处理的话,提示你“该数据已存在”之后就不运行后面的插入代码了,而try catch是可以在抛出异常信息“该数据已存在”的时候进入catch代码块执行插入操作的。
就是不要认为在有全局异常处理之后,try catch就没用了。不知道我这样算不算牵强的解释
图一(使用只全局异常的情况下,无法执行到else子句内的insert操作)

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

栏 目:JAVA代码
下一篇:java比较两个list是否相同equals的代码详解
本文标题:Springboot全局异常捕获及try catch区别解析
本文地址:http://www.codeinn.net/misctech/55125.html


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




