系统开发实践-Spring Cloud 异常封装及传递处理
2017-11-8
| 2024-2-20
字数 1114阅读时长 3 分钟
type
Post
status
Published
date
Nov 8, 2017
slug
summary
准备将 RPC 协议从 dubbo 切换为 feign, 记录一些系统设计细节 服务端的异常输出设计 OpenFeign 的异常传递捕捉处理
tags
Spring Cloud
Spring Boot
开发
框架设计
category
技术分享
icon
password
AI summary
Last edited time
Feb 20, 2024 04:18 PM

异常体系定义

notion image

异常编码的设计使用

这里采用了精简异常代码设计的形式
ServiceException业务异常, 异常编码默认使用BIZ_ERROR, 异常文字提示根据实际情况抛出, 例如
系统设计上, 会针对业务异常, 日志记录上做 WARN 级别设置
系统异常默认使用SYSTEM_ERROR, 提示系统忙, 请稍后再试, 默认非 ServiceException 的异常, 都归属于系统异常, 需要做告警提示并及时修复
异常类型
默认异常 code
默认异常 message
日志记录级别
ServiceException
BIZ_ERROR
WARN
SystemException
SYSTEM_ERROR
系统忙, 请稍后再试
ERROR

Spring Boot 异常捕捉扩展

spring boot 的 ErrorMvcAutoConfiguration 有参考实现, 我们对其进行扩展, 个性化输出内容
同时配合 spring boot 的 AutoConfiguration 机制, 让我们的 CustomErrorAttributes 生效

Spring Cloud 的 openfeign 异常传递改造

spring cloud 微服务, 我们用的 openfeign 声明式调用, 还需要对异常传递进行扩展, 实现在调用方调用服务时, 能够获取服务提供方抛出的异常
  • Spring Cloud
  • Spring Boot
  • 框架设计
  • Spring Could 尝鲜记录通过 Syncthing 实现多台服务器的数据同步
    Loading...