如何简单使用Java程序的异常捕获

我们在开发中难免会出现程序错误的问题,但是如果出错了的话那么整个程序就会报错,这样在开发中是不允许的,能传递报错消息但是系统不能崩盘,这就需要使用异常区捕获了

如何自己创建一个异常呢,如下

@Component
public class MyException extends Exception implements Serializable {public MyException() {}public MyException(String message) {super(message);}
}

只需要在程序中对肯可能出错的地方使用try-catch包住,使用throw抛出异常即可

try{//可能出错的代码
}catch (Exception ex){throw new MyException("我的异常报错");
}

接下来使用异常处理器进行接受 

/*** 异常处理器*/
@Slf4j
@RestControllerAdvice
public class MyExceptionHandler {// 处理自定义异常的方法@ExceptionHandler(MyException.class)public R handler(MyException ex,HttpServletRequest request) {//打印信息log.error("这个请求 [{}] 出现异常, 异常信息为 [{}]", request.getRequestURL(), ex.getMessage());return R.fail(e.getMessage());}// 处理默认异常的方法@ExceptionHandler(Exception.class)public R handler(Exception e,HttpServletRequest request) {//抛出异常(不推荐)e.printStackTrace();   return R.fail("未知错误,请联系管理员");}}

这样就可以了

其他同理即可,还有一种是针对于sentinel的三种异常进行捕获,如下

@RestControllerAdvice
public class MyControllerAdvice {//服务限流@ExceptionHandler(FlowException.class)public R<String> flowHandler(Exception e) {        return R.fail("系统繁忙请稍后再试!");}//服务熔断降级@ExceptionHandler(DegradeException.class)public R<String> degradeHandler(Exception e) {return R.fail("系统开小差,稍后再试!");}// 权限规则,全局异常处理,黑白名单@ExceptionHandler(AuthorityException.class)public R<String> handlerAuthorityException() {return R.fail("没有权限访问");}
}

这样的话就可以捕获sentinel的异常了

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

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

相关文章

HNU-算法设计与分析-甘晴void学习感悟

前言 算法设计与分析&#xff0c;仅就课程而言&#xff0c;似乎是数据结构与算法分析的延续 教材使用&#xff1a; 课程 关于课程&#xff0c;橙学长讲的非常清晰&#xff0c;我深以为然。 HNUCS-大三课程概览-CSDN博客文章浏览阅读1.3k次&#xff0c;点赞5次&#xff0c;收…

安装nginx:手动安装和yum安装

本文在centos7.9下分别尝试了yum安装和手动安装&#xff0c;记录一下试验过程。为后来者少踩点坑。 下载 下载地址&#xff1a;链接 。建议下载稳定版本&#xff0c;也就是Stable Version&#xff0c;这里下载的是 nginx-1.24.0 # 我下载在如下文件夹 mkdir/opt/apps cd /op…

ES入门五:组合查询

带有组合功能的Api有以下几个&#xff1a; Bool Query&#xff1a;布尔查询&#xff0c;可以组合多个过滤语句来过滤文档Boosting Query&#xff1a;在postive块中指定匹配文档的语句&#xff0c;同时降低在negative块中也匹配的文档的得分&#xff0c;提供调整相关性算法的能…

Android调用浏览器打开指定页面

一、启动Android默认浏览器 在Android程序中我们可以通过发送隐式Intent来启动系统默认的浏览器。如果手机本身安装了多个浏览器而又没有设置默认浏览器的话&#xff0c;系统将让用户选择使用哪个浏览器来打开连接。 Uri uri Uri.parse("https://www.baidu.com"); …

代码随想录 回溯算法-排序

目录 46.全排序 47.全排列|| 332.重新安排行程 46.全排序 46. 全排列 中等 给定一个不含重复数字的数组 nums &#xff0c;返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[1,2,3],[1,…

蓝桥杯每日一题:烤鸡dfs

这道题考察了dfs的应用&#xff0c;题干十分有趣&#xff0c;思考过程对以后类似题目也有很强的参考性&#xff0c;一起来学习吧&#xff01; 题目&#xff1a; # 烤鸡 ## 题目背景 猪猪 Hanke 得到了一只鸡。 ## 题目描述 猪猪 Hanke 特别喜欢吃烤鸡&#xff08;本是同畜…

js的运算符

?? 是根据 null 和 undefined 判断的&#xff0c; || 是根据 布尔值 false 判断的, 左侧为true 不看右侧 && 左侧为false 不看右侧 ?. ”可选链操作符“&#xff0c;允许读取位于连接对象链深处的属性的值&#xff0c;而不必明确验证链中的每个引用是否有效。在引…

蓝桥杯练习题——归并排序

1.火柴排队 思路 1.求最小值的时候&#xff0c;可以直接按升序排序&#xff0c;这样得到的值就是最小值 2.求最小交换次数的时候&#xff0c;不能直接排序&#xff0c;因为只能交换相邻的数&#xff0c;只需要知道他们的相对大小&#xff0c;所以可以先用离散化&#xff0c;把…

清华大学1748页CTF竞赛入门指南,完整版开放下载!

CTF是一种针对信息安全领域的经济性挑战&#xff0c;旨在通过解决一系列的难题来寻找隐藏的“flag”。CTF比赛战队一般是以高校、科研单位、企业、信息安全从业者或社会团体组成。对于网安爱好者及从业者来说&#xff0c;拥有“CTF参赛经验”也是求职中的加分项。 前几天分享的…

什么是智慧公厕?智慧公厕设备有哪些

在现代社会&#xff0c;公共厕所作为城市基础设施的重要一环&#xff0c;承载着城市卫生、居民生活品质的重要责任。然而&#xff0c;传统公厕存在的问题仍然不可忽视&#xff1a;脏乱差、资源浪费、安全隐患等等。 为了解决这些问题&#xff0c;针对公共厕所日常使用、运营管…

密码学——流密码和分组密码

引言: 首先回顾一下一次一密密码的概念:密钥随机产生,而且只使用一次,是一种理想的理论安全的加密方案。这种加密方式无条件安全,且加密和解密均为加法运算,效率较高。但是由于密钥长度与明文长度一样长,密钥共享困难,实用性受限。   那么在实际应用中更具实用性的加…

六、长短时记忆网络语言模型(LSTM)

为了解决深度神经网络中的梯度消失问题&#xff0c;提出了一种特殊的RNN模型——长短期记忆网络&#xff08;Long Short-Term Memory networks, LSTM&#xff09;&#xff0c;能够有效的传递和表达长时间序列中的信息并且不会导致长时间前的有用信息被忽略。 长短时记忆网络原理…

ORA/GSA -- 学习记录

brief over-representation analysis(ORA),过表“达”分析&#xff0c;就是我们做多分组的RNAseq数据解析后会得到一些差异表达的gene&#xff0c;有些时候是单独拿出一个差异gene去解释表型&#xff0c;缺点是欠缺证据力度。有些人就把一些相关的差异gene放在一块儿解释&…

网络编程---网络编程入门、UDP通信程序、TCP通信程序

1.网络编程入门 1.网络编程概述 网络编程&#xff1a; 在网络通信协议下&#xff0c;实现网络互连的不同计算机上运行的程序间可以进行数据传输 计算机网络&#xff1a; 是指将地理位置不同的具有独立功能的多台计算机及其外部设备&#xff0c;通过通信线路连接起来&#…

SQL常用函数

Inner join vs left join 当您只想返回两边都有对的记录时&#xff0c;您将使用 INNER JOIN&#xff0c;当您需要“左”表中的所有记录时&#xff0c;您将使用 LEFT JOIN&#xff0c;无论它们是否在“右”表中有对或不。如果您需要两个表中的所有记录&#xff0c;无论它们是否…

J1周-ResNet-50算法

本文为&#x1f517;365天深度学习训练营 中的学习记录博客 原作者&#xff1a;K同学啊|接辅导、项目定制 我的环境&#xff1a; 1.语言&#xff1a;python3.7 2.编译器&#xff1a;pycharm 3.深度学习框架Tensorflow/Pytorch 1.8.0cu111 一、问题引出 CNN能够提取低、中、…

qnx启动中控屏黑屏

bmetrics_service boot metrics service, 用于记录统计启动性能信息,读取/dev/bmetrics可以获取到这些信息 # use memorydump memorydump Sets the debug cookies, copies MMU info into reset_info asinfo, sets the secure monitor(TZ) dump buffer, starts tracelogger Usa…

VR全景技术在VR看房中有哪些应用,能带来哪些好处

引言&#xff1a; 随着科技的不断发展&#xff0c;虚拟现实&#xff08;VR&#xff09;技术在房地产行业中的应用也越来越广泛。其中&#xff0c;VR全景技术在VR看房中的运用尤为突出。今天&#xff0c;让我们一起深入探讨VR全景技术在VR看房中的应用及其带来的种种好处。 一、…

ES入门二:文档的基本操作

索引管理 创建索引 删除索引 文档管理 创建文档 如果有更新需求&#xff0c;使用第一种如果有唯一性校验&#xff0c;使用第二种如果需要系统给你创建文档Id&#xff0c;使用第三种 &#xff08;这个性能更好&#xff09; 相比第一种&#xff0c;第三种的写入效率更高&#xf…

基础GamePlay知识-碰撞检测

将会持续更新gameplay的一些基础知识&#xff0c;一同学习。 扇形检测 扇形检测是Gameplay里面很常见的场景。比如荒野乱斗中&#xff0c;大部分的近战角色都是扇形攻击。在扇形范围内就认为是受击。 扇形检测只有两个参数&#xff0c;一个是扇形的角度一个是扇形的半径大小。…