FeignException 捕获
背景
1、使用feign调用第三方接口,响应的数据结构不太规范,也很容易返回500,即使是参数错误也是返回500的,所以必须要捕获异常
2、开始时,使用 catch BusinessException (BusinessException是封装的异常类,extend RuntimeException),但发现并没有捕获到。
3、但不太想直接使用 catch Exception, (但还是用 catch Exception)看了一下,是catch到了一个 FeignException
4、再看一下这个 FeignException, 它是 extend RuntimeException 的。它和BusinessException 一样都是继承RuntimeException的,所以是捕获不到了(捕获父类可以,但因为子类是不同的,所以子类是识别不到的)
5、知道是 FeignException, 于是 catch FeignException 就可以了
结论:
一些第三方接口,如果不规范的话,一定要catch 掉异常。feign的话,就要 catch 掉 FeignException。
但还是希望按规范返回接口,比如如果参数不对,也应该是返回400才对,直接给个500算啥呢。害。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南