zoukankan      html  css  js  c++  java
  • 谷粒商城品牌管理(九)

     61-64可以查看下面2篇博客

    https://www.cnblogs.com/dalianpai/p/12984290.html

    https://www.cnblogs.com/dalianpai/p/12984850.html

    65-66 JSR303校验和统一异常处理

     JSR303得到了很好的学习的机会,统一异常处理的码值是通过枚举来实现的,也有一定的可取之处。

    在common项目下引入jar包

        <dependency>
                <groupId>javax.validation</groupId>
                <artifactId>validation-api</artifactId>
                <version>2.0.1.Final</version>
            </dependency>
    
            <dependency>
                <groupId>org.hibernate.validator</groupId>
                <artifactId>hibernate-validator</artifactId>
                <version>6.1.2.Final</version>
            </dependency>
    

    Bo类

     注意:当时截图的时候忘记把BindingResult删了,有这个会导致异常捕获不到。

     

     统一异常处理

    /**
     * @author WGR
     * @create 2020/6/1 -- 19:49
     */
    @Slf4j
    @RestControllerAdvice("com.dalianpai.gulimall.product.controller")
    public class GulimallExceptionControllerAdvice {
    
         @ExceptionHandler(value = MethodArgumentNotValidException.class)
         public R handleVaildException(MethodArgumentNotValidException e){
             log.info("数据校验出现问题{},异常类型:{}",e.getMessage(),e.getClass());
    
             BindingResult bindingResult = e.getBindingResult();
             Map<String, String> map = new HashMap<>();
             bindingResult.getFieldErrors().forEach((fieldError) ->{
                 map.put(fieldError.getField(),fieldError.getDefaultMessage());
             } );
             return R.error(BizCodeEnume.VAILD_EXCEPTION.getCode(),BizCodeEnume.VAILD_EXCEPTION.getMessage()).put("data",map);
         }
    
    
        @ExceptionHandler(value = Throwable.class)
        public R handleException(Throwable throwable){
            log.error("错误:",throwable);
            return R.error(BizCodeEnume.UNKNOW_EXCEPTION.getCode(),BizCodeEnume.UNKNOW_EXCEPTION.getMessage());
        }
    }  

    枚举类:

    /**
     * @author WGR
     * @create 2020/6/1 -- 20:10
     */
    public enum BizCodeEnume {
    
        UNKNOW_EXCEPTION(10000,"系统未知异常"),
        VAILD_EXCEPTION(10001,"参数格式校验失败");
    
        private int code;
        private String message;
    
        BizCodeEnume(int code, String message) {
            this.code = code;
            this.message = message;
        }
    
        public int getCode() {
            return code;
        }
    
        public String getMessage() {
            return message;
        }
    }
    

  • 相关阅读:
    mobx源码解读1
    表单元素之图形系
    koa2+koa-views示例
    avalon2的后端渲染实践
    向一个数组中插入元素
    一步步编写avalon组件02:分页组件
    avalon2学习教程15指令总结
    avalon2学习教程14动画使用
    WPF动态加载Menu菜单
    WPF自定义控件与样式 ---- 系列文章
  • 原文地址:https://www.cnblogs.com/dalianpai/p/13027353.html
Copyright © 2011-2022 走看看