【微服务】SpringBoot 通用异常处理方案使用详解

目录

一、前言

二、SpringBoot 异常介绍

2.1 SpringBoot 中异常定义

2.1.1 SpringBoot 异常处理机制的重要性

2.2 常用的异常分类

2.3 常用的异常处理解决方案

三、springboot 异常处理操作实践

3.1 springboot自适应错误处理机制

3.1.1 使用默认错误页面

3.1.2 自定义配置

3.2 springmvc 错误处理方案

3.2.1 局部控制 @ExceptionHandler 的使用

1)默认错误页面案例

2)使用@ExceptionHandler改造

3.2.2 全局控制器

3.3 springboot 错误处理方案

3.3.1 springboot 错误处理流程

3.3.1.1 如何在错误页面获取错误信息

3.3.1.2 自定义错误页面

3.3.1.3 补充说明

3.4 前后端分离项目错误处理方案

3.4.1 非前后端分离的项目错误处理方案

四、写在文末


一、前言

在使用springboot进行微服务的开发时,经常会涉及到关于系统错误和系统异常等情况的处理,在实际业务中,项目一旦上线之后,在使用过程中总会遇到各种意料之外的情况,此时就需要借助框架对异常的处理机制进行代码层面的完善,常见的情况比如说,代码层面错误,查询数据库错误,调用第三方API错误,未被捕获的错误等,本文将详细介绍如何在微服务开发中更合理的使用springboot的异常处理机制。

二、SpringBoot 异常介绍

2.1 SpringBoot 中异常定义

在 Spring Boot 应用程序中,异常(Exception)是指在程序执行过程中发生的、干扰正常流程的事件。Spring Boot 提供了一套强大的机制来管理和处理这些异常,确保应用程序能够在遇到错误时以一种受控的方式进行响应,并向用

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

leetcode904-水果成篮

leetcode 904 时间复杂度:O(n) 空间复杂度:O(1) 之前发布了一个滑动窗口的题目解答思路,参考博文:长度最小的子数组 本题也是基于滑动窗口的一个扩展题,主要解决方法是利用滑动窗口哈希表 var totalFruit function…

线性代数概述

矩阵与线性代数的关系 矩阵是线性代数的研究对象之一: 矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合,是线性代数中的核心概念之一。矩阵的定义和性质构成了线性代数中矩阵理论的基础,而矩阵运算则简洁地表示和…

李宏毅机器学习HW1: COVID-19 Cases Prediction

Kaggle数据集和提交链接 特征选择(主要修改地方) 在sample code的基础上主要修改了Select_feat选择特征函数。 首先,因为数据集中的第一列是id,先在raw_x_train,raw_x_valid,raw_x_test中都去掉这一列。其…

owasp SQL 注入-03 (原理)

1: 先看一下注入界面: 点submit 后,可以看到有语法报错,说明已经起作用了: 报如下的错误: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near at line 1 2:…

VD:生成a2l文件

目录 前言Simulink合并地址 ASAP2 editor 前言 我之前的方法都是通过Simulink模型生成代码的过程中顺便就把a2l文件生成出来了,这时的a2l文件还没有地址,所以紧接着会去通过elf文件更新地址,一直以为这是固定的流程和方法,今天无…

Navicat Premium 数据可视化

工作区,数据源以及图表 数据可视化是使用可视化组件(例如图表,图形和地图)的信息和数据的图形表示。 数据可视化工具提供了一种可访问的方式,用于查看和理解数据中的趋势,异常值和其他模式。 在Navicat中&…

设置 Git 默认推送不需要输入账号和密码【Ubuntu、SSH】

如何设置 Git 默认推送不需要输入账号和密码 在使用 Git 管理代码时,许多开发者会遇到每次推送(push)或拉取(fetch)代码时都需要输入 GitHub 或 GitLab 等远程仓库的账号和密码的情况。虽然设置了用户名和电子邮件信息…

TCP Window Full是怎么来的

wireshark查看包时,会看到TCP Window Full,总结下它的特点: 1. Sender会显示 TCP Window Full 2. “Sender已发出,但,Receiver尚未ack的字节”,即Sender的 bytes in flights 3. Sender的 bytes in fligh…

PyTorch框架——基于WebUI:Gradio深度学习ShuffleNetv2神经网络蔬菜图像识别分类系统

第一步:准备数据 蔬菜数据集,英文为Vegetable。 train 目录下有15000 张图片。 共十五种植物的幼苗图片集,分别为classes [Bean, Bitter_Gourd, Bottle_Gourd, Brinjal, Broccoli, Cabbage, Capsicum, Carrot, Cauliflower, Cucumber, Pa…

WPS数据分析000001

目录 一、表格的新建、保存、协作和分享 新建 保存 协作 二、认识WPS表格界面 三、认识WPS表格选项卡 开始选项卡 插入选项卡 页面布局选项卡 公式选项卡 数据选项卡 审阅选项卡 视图选项卡 会员专享选项卡 一、表格的新建、保存、协作和分享 新建 ctrlN------…

网络安全 | 什么是正向代理和反向代理?

关注:CodingTechWork 引言 在现代网络架构中,代理服务器扮演着重要的角色。它们在客户端和服务器之间充当中介,帮助管理、保护和优化数据流。根据代理的工作方向和用途,代理服务器可分为正向代理和反向代理。本文将深入探讨这两种…

某讯一面,感觉问Redis的难度不是很大

前不久,有位朋友去某讯面试,他说被问到了很多关于 Redis 的问题,比如为什么用 Redis 作为 MySQL 的缓存?Redis 中大量 key 集中过期怎么办?如何保证缓存和数据库数据的一致性?我将它们整理出来,…

基于机器学习的用户健康风险分类及预测分析

完整源码项目包获取→点击文章末尾名片! 背景描述 在这个日益注重健康与体能的时代,健身已成为许多人追求健康生活的重要组成部分。 本数据集包含若干健身房会员的详细信息,包括年龄、性别、体重、身高、心率、锻炼类型、身体脂肪比例等多项关…

TCP TIME-WAIT 状态为什么要坚持 2MSL

经常有人问这个问题,这种问题问我就对了。我准备了下面的一幅时序图来解释这个问题: 简单点说就是两个目的: 正常处理被动关闭方的重传 FIN;确保当前连接的所有报文全部消失。 也就是说,无论任何情况下,…

Ubuntu升级Linux内核教程

本文作者CVE-柠檬i: CVE-柠檬i-CSDN博客 本文使用的方法是dpkg安装,目前版本为5.4.0-204,要升级成5.8.5版本 下载 下载网站:https://kernel.ubuntu.com/mainline/ 在该网站下载deb包,选择自己想要升级的版本,这里是5…

Java算法 数据结构 栈 单调栈实战 模版题 [洛谷-P5788]

目录 题目地址 题目描述 输入输出样例 代码 题目地址 【模板】单调栈 - 洛谷 题目描述 输入输出样例 代码 static void solve() throws Exception {int nsc.nextInt();int[] arrnew int[n1];int[] result new int[n1];for(int i1;i<n1;i) {arr[i]sc.nextInt();}Stack …

web前端1--基础

&#xff08;时隔数月我又来写笔记啦~&#xff09; 1、下载vscode 1、官网下载&#xff1a;Visual Studio Code - Code Editing. Redefined 2、步骤&#xff1a; 1、点击同意 一直下一步 勾一个创建桌面快捷方式 在一直下一步 2、在桌面新建文件夹 拖到vscode图标上 打开v…

Api网关Zuul

网关分类与开放API 开放API (OpenAPI) 企业需要将自身数据、能力等作为开发平台向外开放&#xff0c;通常会以REST的方式向外提供&#xff0c;最好的例子就是淘宝开放平台、腾讯公司的QQ开发平台、微信开放平台。开放API平台必然涉及到客户应用的接入、API权限的管理、调用次数…

Flink(八):DataStream API (五) Join

1. Window Join Window join 作用在两个流中有相同 key 且处于相同窗口的元素上。这些窗口可以通过 window assigner 定义&#xff0c;并且两个流中的元素都会被用于计算窗口的结果。两个流中的元素在组合之后&#xff0c;会被传递给用户定义的 JoinFunction 或 FlatJoinFunct…

数据结构漫游记:队列的动态模拟实现(C语言)

嘿&#xff0c;各位技术潮人&#xff01;好久不见甚是想念。生活就像一场奇妙冒险&#xff0c;而编程就是那把超酷的万能钥匙。此刻&#xff0c;阳光洒在键盘上&#xff0c;灵感在指尖跳跃&#xff0c;让我们抛开一切束缚&#xff0c;给平淡日子加点料&#xff0c;注入满满的pa…