Feign调用异常触发降级捕获异常
通过配置fallbackFactory来捕获异常信息,代码如下
@FeignClient(name = "user", fallbackFactory = UserFallBackFactory.class)
public interface UserFeign {@PostMapping("/get/list")Map getList();}
@Component
public class UserFallBackFactory implements FallbackFactory<UserFeign> {@Overridepublic UserFeign create(Throwable throwable) {// 捕获具体异常信息String message= FeginUtil.getMessage(throwable);return new UserFeign() {@Overridepublic Map getList() {Map<String, Object> map = new HashMap<>();map.put("status", 500);map.put("message", message);return map;}}}
}
public class FeginUtil {public static String getMessage(Throwable e) {if (e instanceof FeignException) {FeignException feignException = (FeignException) e;String url = feignException.request().url();int status = feignException.status();String message = feignException.getMessage();if (status == 404) {return "服务未找到:" + url;}if (message.contains("Read timed out")) {return "服务处理请求超时:" + url;}if (message.contains("connect timed out")) {return "服务连接超时:" + url;}}if (e instanceof RuntimeException) {RuntimeException runtimeException = (RuntimeException) e;String message = runtimeException.getMessage();if (StringUtils.isNotEmpty(message)) {if (message.contains("Load balancer does not have available server for client")) {String[] split = message.split(":");if (split.length > 2) {return "没有找到可用的服务:" + split[2];}}if(message.contains("[") && message.contains("]")){int startIndex = message.lastIndexOf("[") + 1;int endIndex = message.lastIndexOf("]");String result = message.substring(startIndex, endIndex); JSONObject jsonObject = JSONObject.parseObject(result);return "服务调用异常:" + jsonObject.getString("exception");}}}return "系统异常:" + e.getMessage();}
}
相关文章:
Feign调用异常触发降级捕获异常
通过配置fallbackFactory来捕获异常信息,代码如下 FeignClient(name "user", fallbackFactory UserFallBackFactory.class) public interface UserFeign {PostMapping("/get/list")Map getList();}Component public class UserFallBackFacto…...
Springboot 音乐网站管理系统idea开发mysql数据库web结构java编程计算机网页源码maven项目
一、源码特点 springboot 音乐网站管理系统是一套完善的信息系统,结合springboot框架和bootstrap完成本系统,对理解JSP java编程开发语言有帮助系统采用springboot框架(MVC模式开发),系统 具有完整的源代码和数据库&…...
微信支付v2-02
...
企业的销售活动是什么?CRM销售管理系统给你答案
在企业业务中,销售活动是实现企业业绩目标的基本单元,起着奠基石的作用。CRM销售管理系统是销售活动管理的必备工具,帮助企业更好地开展销售活动。下面来说说企业的销售活动是什么? 什么是销售活动 简单来说,销售人员…...
【PG】PostgreSQL参数格式 配置文件格式
目录 一 PG参数格式 二 通过配置文件修改参数 postgresql.auto.conf文件 三 通过SQL修改参数 四 通过shell修改参数 五 管理配置文件内容 一 PG参数格式 所有参数名都是大小写不敏感的。每个参数都可以接受五种类型之一的值: 布尔、字符串、整数、 浮点数或枚…...
应用层协议 HTTP
一、应用层协议 我们已经学过 TCP/IP , 已然知道数据能从客户端进程经过路径选择跨网络传送到服务器端进程。 我们还需要知道的是,我们把数据从 A 端传送到 B 端, TCP/IP 解决的是顺丰的功能,而两端还要对数据进行加工处理或者使用…...
Springboot+vue的应急救援物资管理系统,Javaee项目,springboot vue前后端分离项目。
演示视频: Springbootvue的应急救援物资管理系统,Javaee项目,springboot vue前后端分离项目。 项目介绍: 本文设计了一个基于Springbootvue的前后端分离的应急救援物资管理系统,采用M(model)V&…...
创建properties资源文件,并由spring组件类获取资源文件
1.1 创建资源文件file-upload-dev.properties #文件上传地址 file.imageUserFaceLocation=/workspaces/images/foodie/faces #图片访问地址 file.imageServerUrl=http://localhost:8088/foodie/faces1.2 创建spring组件获取资源文件类FileUpload import org.springframework.…...
你知道npm、yarn、pnpm的区别吗?
npm 嵌套的 node_modules 结构 npm 在早期采用的是嵌套的 node_modules 结构,“node_modules” 文件夹通常包含项目依赖的模块。在项目中使用多个依赖并且这些依赖本身也有它们自己的依赖时,就会出现嵌套的 “node_modules” 结构。 嵌套的 “node_mo…...
利用excel表格进行分包和组包
实际使用中,我们可能希望修改某几个数据之后,最终的数据包能够自动发动数据,类似于在给结构体变量修改数据,自动生成完整的结构体; excel语法 1:拆分数据 LEFT(A4,2) – 取A4单元格左边的两个数据 RIGHT(A4…...
Go 语言切片扩容规则是扩容2倍?1.25倍?到底几倍
本次主要来聊聊关于切片的扩容是如何扩的,还请大佬们不吝赐教 切片,相信大家用了 Go 语言那么久这这种数据类型并不陌生,但是平日里聊到关于切片是如何扩容的,很多人可能会张口就来,切片扩容的时候,如果老…...
突破封锁|华为芯片10年进化史:从K3V1到麒麟9000S
华为海思麒麟芯片过去10年研发历程回顾如下: 2009年:华为推出第一款手机芯片K3V1,采用65nm工艺制程,基于ARM11架构,主频600MHz,支持WCDMA/GSM双模网络。这款芯片搭载在华为U8800手机上,标志着华…...
vue建项目
vue3 create-vue 建vue3项目 vscode里改点东西,首先vetur禁用,这个是vue2的,下volar pinia持久化插件:npm i pinia-plugin-persistedstate 配eslint、prettier 在.eslintrc.cjs里配 rules: {// prettier专注于代码的美观度 (格…...
天龙八部服务端Public目录功能讲解
PublicDataAIScript文件夹中 script(0~210).ai怪物AI脚本设定如是否主动攻击是否使用技能 PublicDataScript文件夹中 eventbossgroupbg_BossAI_CreateMonster.lua 是BOSS群 刷小怪通用脚本 PublicDataScript文件夹中 eventbossgroupbg_CangShan.lua 苍山 BOSS群刷新脚本 Public…...
好用的Java工具类库—— Hutool
目录 一、简介 1、介绍 2、Hutool名称的由来 3、Hutool如何改变我们的coding方式 4、包含组件(核心) 5、官方文档 二、安装与使用 1、引入 import方式 exclude方式 2、安装(POM) 三、使用 1、DateUtil 2、StrUtil 3、NumberUtil 4、MapU…...
IDEA的使用(三)Debug(断点调试)(IntelliJ IDEA 2022.1.3版本)
编程过程中如果出现错误,需要查找和定位错误时,借助程序调试可以快速查找错误。 编写好程序后,可能出现的情况: 1.没有bug。 使用Debug的情况: 2.运行后,出现错误或者异常信息,但是通过日志文件…...
285_C++_web提取AI告警信息JSON格式
struct Cache_t {AIAlarmFaceInfo Face;AIAlarmPlateInfo Plate;SAISnapedObjInfo Object;SharedCArray Common;int Type; };struct Client_t {Client_t() : AlarmCnt(HA...
(Qt5Gui.dll)处(位于 xxx.exe 中)引发的异常: 0xC0000005: 读取位置 XXXXXXXX 时发生访问冲突
最新在处理opencv的时候遇到(Qt5Gui.dll)处(位于 xxx.exe 中)引发的异常: 0xC0000005: 读取位置 XXXXXXXX 时发生访问冲突,导致上位机崩溃严重影响开发的效率。 简要代码: void show() { QImage img QImage(data,width,height,bytePerLine,QImage::For…...
AI:11-基于深度学习的鱼类识别
当今,人工智能和深度学习已经成为许多领域的关键技术。在生态学和环境保护领域,鱼类识别是一项重要的任务,因为准确识别和监测鱼类种群对于保护水生生物多样性和可持续渔业管理至关重要。基于深度学习的鱼类识别系统能够自动识别和分类不同种类的鱼类,为生态学研究和渔业管…...
c#学习系列相关之多线程(三)----invoke和begininvoke
一、invoke和BeginInvoke的作用 invoke和begininvoke方法的初衷是为了解决在某个非某个控件创建的线程中刷新该控件可能会引发异常的问题。说的可能比较拗口,举个例子:主线程中存在一个文本控件,在一个子线程中要改变该文本的值,此…...
小白也能懂!CosyVoice2-0.5B API调用全攻略,快速生成克隆语音
小白也能懂!CosyVoice2-0.5B API调用全攻略,快速生成克隆语音 1. 准备工作:认识CosyVoice2-0.5B CosyVoice2-0.5B是阿里开源的一款强大的语音克隆工具,它能让你用短短3-10秒的参考音频,就能克隆出几乎一模一样的声音…...
lt6911c全套资料:原理图、PCB、源代码及手册
lt6911c全套资料,包括原理图,pcb,源代码,寄存器手册,datasheet。 。 最近在折腾LT6911C这款HDMI转MIPI的芯片,翻遍全网总算集齐了全套开发资料。这玩意儿在视频转换领域用得挺多,但真开始动手调…...
PSO-Transformer分类预测Matlab代码:基于粒子群优化算法优化Transfor...
PSO-Transformer分类 Matlab代码 基于粒子群优化算法(PSO)优化Transformer的数据分类预测(可以更换为单、多变量时序预测/回归,前私我),Matlab代码,可直接运行,适合小白新手 程序已经调试好,无需更改代码替换数据集即可…...
深度解析LSPosed框架:从Hook原理到模块开发的完整实战指南
深度解析LSPosed框架:从Hook原理到模块开发的完整实战指南 【免费下载链接】LSPosed_mod My changes to LSPosed 项目地址: https://gitcode.com/GitHub_Trending/ls/LSPosed_mod LSPosed框架作为Android系统Hook技术的现代实现,为开发者提供了强…...
HY-Motion 1.0效果对比:相比MotionDiffuse在动作连贯性上提升35%
HY-Motion 1.0效果对比:相比MotionDiffuse在动作连贯性上提升35% 1. 模型概述 HY-Motion 1.0是基于流匹配技术的3D动作生成大模型,代表了文本到3D动作生成领域的最新突破。这个模型系列采用了Diffusion Transformer(DiT)和流匹配…...
Wan2.1-UMT5开发环境搭建:Node.js后端服务与前端交互配置
Wan2.1-UMT5开发环境搭建:Node.js后端服务与前端交互配置 如果你正在折腾Wan2.1-UMT5的WebUI,想自己搞点后端服务,或者想扩展它的功能,比如加个状态查询、做个回调通知,那你来对地方了。很多朋友卡在环境配置这一步&a…...
Node.js实战:破解淘宝、天猫商品数据采集中的_m_h5_tk令牌与sign签名验证机制(2023最新版)
1. 淘宝天猫H5端的安全验证机制解析 淘宝和天猫作为国内头部电商平台,在H5端采用了独特的安全验证机制来保护商品数据。这套机制的核心就是**_m_h5_tk令牌和sign签名**的双重验证。我刚开始研究这个机制时踩了不少坑,后来才发现它的设计确实很巧妙。 与…...
阿里通义Qwen3-Coder 多场景集成指南
1. Qwen3-Coder 核心能力与适用场景 第一次接触阿里通义Qwen3-Coder时,最让我惊讶的是它对代码上下文的理解深度。记得有次我随手输入"写个带缓存的斐波那契函数",它不仅生成了正确的Python实现,还主动添加了LRU缓存装饰器的使用说…...
百川2-13B-4bits量化原理解析:OpenClaw任务中的精度损失补偿方案
百川2-13B-4bits量化原理解析:OpenClaw任务中的精度损失补偿方案 1. 从一次失败的自动化任务说起 上周我尝试用OpenClaw自动整理一批技术文档时遇到了奇怪的现象:当AI助手处理到第37个Markdown文件时,突然开始重复生成相同的段落内容。查看…...
用快马平台十分钟复刻notepad++:打造你的轻量级web代码编辑器原型
今天尝试用InsCode(快马)平台快速复刻一个Notepad风格的Web代码编辑器原型,整个过程比想象中顺利很多。作为一个经常需要临时测试代码片段的开发者,这种轻量级工具特别适合快速验证想法。 确定核心功能框架 首先梳理了Notepad最常用的几个功能࿱…...
