§ 本文目标

掌握业务异常开发、配置,以及应用场景

§ 练习场景

配置异常代码,并在业务逻辑层抛出业务异常

前提:

  • 基于3.2.1章节创建的工程
  • 微服务应用:yusp-app-common、yusp-app-oca

§ 操作手册

封装基本的业务异常,包括信息码、提示内容等

YuspException

§ 配置

§ POM配置

<dependency>
            <groupId>cn.com.yusys.yusp</groupId>
            <artifactId>yusp-app-common-client</artifactId>
        </dependency>
        <dependency>
            <groupId>cn.com.yusys.yusp</groupId>
            <artifactId>yusp-common-mapper</artifactId>
        </dependency>
1
2
3
4
5
6
7
8

§ JavaConfig配置

在启动类上加@EnableFeignClients注解,并指定扫描的包名,如果已存在注解,通过basePackages={"...","cn.com.yusys.yusp"}方式添加

@EnableFeignClients(basePackages = "cn.com.yusys.yusp")
1

§ 业务逻辑层异常开发

 @Autowired
    private MessageProviderService messageProviderService;
    
    public void chk() {
    //检查数据有效性
          if (!checkSysInfo("sysName", sysName, logicSysMapper)) {
            logger.error("检查数据有效性失败,系统名称已存在");
            throw new YuspException(messageProviderService.getMessage("100001"));
          }
}
1
2
3
4
5
6
7
8
9
10

§ 异常配置

系统管理->公共参数配置->系统提示消息管理

ycpz_01

§ 测试

系统管理->公共参数配置->逻辑系统管理 重复创建逻辑系统,预期:提示逻辑名称已存在

ycpz_02

§ 扩展开发

YuspException基于RunTImeException进行封装,使用Spring Boot 提供的@ControllerAdvice注解,进行异常拦截,并统一转换为RestDto对象,Http状态为200

cn.com.yusys.yusp.commons.web.rest.errors.ExceptionTranslator.class
1

系统提供了关闭该异常拦截的配置

application.extrans.enabled=false
1

应用场景

  • 业务逻辑开发,逻辑判断失败后的交互处理
  • 二次继承,异常的细分操作:通讯业务、普通异常、校验异常等
最后更新于: 4/28/2022, 5:10:13 PM