优化系统报错提示信息,提高人机交互(三)

news2024/11/29 4:36:28

对于业务比较复杂的接口,可能存在方法嵌套,每个方法都可能会报错,出现异常,那么需要把异常信息返回给接口调用者,如何实现呢?
(1)捕获异常进行处理,不返回
controller代码

@AllArgsConstructor
@RestController
@Slf4j
public class DemoController {
    private IDemoService demoService;
    @GetMapping("exceptionTest")
    public Result exceptionTest(Integer integer1, Integer integer2) {
        int a = demoService.exceptionTest(integer1, integer2);
        return Result.success(a);
    }
}

service代码

@Service
public class DemoServiceImpl implements IDemoService {

    @Override
    public int exceptionTest(Integer integer1, Integer integer2) {
        Integer result = 0;
        try {
            result = integer2/integer1;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }
}

业务代码出现异常,可进行捕获,捕获之后能解决,则处理,如不能处理,则需要抛出异常
抛出异常的2种方式:
第一种方法抛出Exception,第二钟方法抛出RuntimeException
Exception :受检查的异常,这种异常是强制我们catch或throw的异常。你遇到这种异常必须进行catch或throw,如果不处理,编译器会报错。比如:IOException。

RuntimeException:运行时异常,这种异常我们不需要处理,完全由虚拟机接管。比如我们常见的NullPointerException,我们在写程序时不会进行catch或throw。

service抛出异常在这里插入图片描述
对service的方法抛出的异常,调用时必须进行捕获处理或者声明抛出
在这里插入图片描述
controller捕获异常,可以处理或者继续抛出

在这里插入图片描述
抛出异常,告知调用者报错信息,有些因操作不当或者配置问题,可进行排查。
一般不在被调用的方法捕获异常,抛出异常,调用者捕获异常进行处理,如果无法处理,继续抛出,直到最顶层的调用者进行处理。
Springboot框架写接口时,建议在controller的方法里面捕获异常并处理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1028229.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【网络八股】TCP八股

网络八股 请简述TCP/IP模型中每层的作用,典型协议和典型设备介绍一下三次握手的过程介绍一下四次挥手的过程必须三次握手吗,两次不行吗?为什么ACK数据包消耗TCP的序号吗三次握手中可以携带应用层数据吗四次挥手时,可以携带应用层数…

时序数据库 TimescaleDB 安装与使用

TimescaleDB 是一个时间序列数据库,建立在 PostgreSQL 之上。然而,不仅如此,它还是时间序列的关系数据库。使用 TimescaleDB 的开发人员将受益于专门构建的时间序列数据库以及经典的关系数据库 (PostgreSQL),所有这些都具有完整的…

收款码的费率都是多少

不管是微信还是支付宝,商户最低的收款手续费率可以达到0.2%费率。一般我们普通商户的收款费率一般在0.6左右,当然也有使用0.3的,也就是1万元的费率是30-60块钱,对于一些流水比较大的商家来说,确实很有必要把这个手续费…

【Java 基础篇】Java字节字符流详解:轻松读写文本与二进制数据

在Java编程中,对文件和数据的读写操作是非常常见的任务。为了满足不同需求,Java提供了多种流类来处理输入和输出。本篇博客将详细介绍Java中的字节流和字符流,以及它们的使用方法,帮助初学者更好地理解和运用这些流来处理文件和数…

三个月备考浙大MEM项目笔试的主要提分机会

随着各个专业陆续公布今年的硕士招生计划,2024年在职备考研究生也到了最后的倒计时阶段,距离MEM联考三个月时间开始备考,有哪些关键的提分机会可以关注?专注联考的杭州达立易考教育认为三个方面需要特别关注。 第一个提分机会来自…

Jenkins学习笔记4

配置构建流程: Jenkins任务创建: 1)创建新任务: 把这个Accept first connection改成 No Validation。问题得到解决。 说明下,要确认下主分支的名称是master还是main。 构建触发器这块暂时没有需要配置的。 传输文件…

notepad++编辑多个位置

在notepad设置多次点击不同的位置,然后同时操作这多个位置的方法: 1、选择编辑,首选项: 2、选择多点编辑:

如何使用Java爬取指定链接的网页内容

在当今信息时代,互联网上的数据量庞大且不断增长。为了获取特定网页的内容,爬虫技术成为了一种非常有用的工具。本文将介绍如何使用Java编程语言来实现爬取指定链接的网页内容。 首先,我们需要准备好Java开发环境。确保你已经安装了Java Deve…

全新运营策略+针对性落地方案,尖庄·荣光成都战略高地市场打造范式“曝光”

执笔 | 姜 姜 编辑 | 萧 萧 9月19日,“百年尖庄 荣光征程”尖庄荣光上市会成都站在成都举行,现场超600位成都各区县优质经销商、终端商共同举杯尖庄荣光,品味香飘百年的匠心味道。 长江酒道注意到,此次发布会是川渝地区首场…

《Web安全基础》08. 漏洞发现

web 1:漏洞发现1.1:操作系统1.2:WEB 应用1.3:APP 应用1.4:API 接口 & 系统端口1.4.1:API 关键字1.4.2:服务&端口1.4.3:相关资源 2:总结 本系列侧重方法论&#x…

Redis 面试常见问答

本文出自:https://thinkinjava.cn 作者:莫那 鲁道 1. 什么是缓存雪崩?怎么解决? 一般而言,我们会利用缓存来缓冲对数据库的冲击,假如缓存无法正常工作,所有的请求便会直接发送至数据库&#xf…

Rust踩雷笔记(7)——两个链表题例子初识裸指针

目录 leetcode 234leetcode 19 leetcode 234 题目在这https://leetcode.cn/problems/palindrome-linked-list/,leetcode 234的回文链表,思路很简单,就是fast和slow两个指针,fast一次移动两个、slow一次一个,最后slow指…

2023年华数杯数学建模A题隔热材料的结构优化控制研究解题全过程文档及程序

2023年华数杯全国大学生数学建模 A题 隔热材料的结构优化控制研究 原题再现: 新型隔热材料 A 具有优良的隔热特性,在航天、军工、石化、建筑、交通等高科技领域中有着广泛的应用。   目前,由单根隔热材料 A 纤维编织成的织物,…

这可是网络工程师零基础学习路线最完整,最详细的版本,没有之一

文章篇幅较长,耐心看完你一定有所收获。 相比IT类的其它岗位,网络工程师的学习方向是比较明亮的。想要成为网络工程师,华为认证就是最好的学习方法。而网络工程师的从零开始学习就是从华为认证的初级开始学起,也就是HCIA&#xff…

【Linux基础】第28讲 Linux Vi编辑器

在Linux下一班使用Vi编辑器来编辑文件vi既可以查看文件也可以编辑文件而vim是vi的升级版本,具备更多的功能。vi如果目标文件不存在,会创建新的文件。但如果新文件没做编辑,退出后还会消失。 VI的三种模式介绍 三种模式(状态&…

rv1126-rv1109-NFS功能

//adb可以直接放,优先使用,nfs是另一种调试方法 adb push E:\111\RkLunch.sh /data//放进data文件夹 / 打开Network File Systems </

常见web漏洞原理整理

文章目录 一、SQL注入1.1SQL注入漏洞原理1.2 SQL注入的两个关键点1.3 与Mysql注入相关的知识点1.4 SQL注入的主要分类1.5 SQL注入的流程1.5.1 普通SQL注入1.5.2 盲注 1.6 SQL注入总结 二、文件上传2.1 文件上传漏洞原理2.2 客户端检测及绕过&#xff08;JS检测与绕过&#xff0…

虹科CiA演讲回顾 | CAN(FD)总线协议转换原理及其在汽车行业的应用

2023年9月14日&#xff0c;CiA中国技术日直播活动在线上举行&#xff0c;该活动致力于开展与CAN总线相关领域的技术工作&#xff0c;演讲者都是CAN领域的专家。虹科首席工程师陈皓受邀参与活动&#xff0c;并带来以“CAN和CAN FD总线协议转换”为主题的演讲。 本次演讲内容主要…

【完美世界】烧烤小队!天元甲胄,石昊铭刻万灵图,斩杀仙殿传人

Hello,小伙伴们&#xff0c;我是小郑继续为大家深度解析完美世界。 完美世界动画最新集预告更新了&#xff0c;天元秘境的最高殿堂正式开启&#xff0c;里面有无数珍宝&#xff0c;更有无上传承&#xff0c;于是又将是一场腥风血雨的争夺战。尤其是魔王荒与仙殿传人的终极决战&…

2D游戏开发和3D游戏开发有什么不同?

2D游戏开发和3D游戏开发是两种不同类型的游戏制作方法&#xff0c;它们之间有一些显著的区别&#xff1a; 1. 图形和视觉效果&#xff1a; 2D游戏开发&#xff1a; 2D游戏通常使用二维图形&#xff0c;游戏世界和角色通常在一个平面上显示。这种类型的游戏具有平面的外观&…