zoukankan      html  css  js  c++  java
  • springboot2.0处理自定义异常始终返回json

    1. 编写自定义异常类

    package cn.jfjb.crud.exception;
    
    /**
     * @author john
     * @date 2019/11/24 - 9:48
     */
    public class UserNotExistException extends RuntimeException {
        public UserNotExistException() {
            super("用户不存在");
        }
    }
    
    

    2. 处理自测试异常

    package cn.jfjb.crud.handler;
    
    import cn.jfjb.crud.exception.UserNotExistException;
    import org.springframework.web.bind.annotation.ControllerAdvice;
    import org.springframework.web.bind.annotation.ExceptionHandler;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    import java.util.HashMap;
    import java.util.Map;
    
    /**
     * @author john
     * @date 2019/11/24 - 10:43
     */
    @ControllerAdvice
    public class MyExceptionHandler {
    
        @ResponseBody
        @ExceptionHandler(UserNotExistException.class)
        public Map<String, Object> handleException(Exception e) {
            Map<String, Object> map = new HashMap<>();
            map.put("code", "user.notexist");
            map.put("message", e.getMessage());
            return map;
        }
    }
    
    

    3. 配置application.yml文件(不配置的话无法获取exception)

    server:
      error:
        include-exception: true
    

    4. 编写测试

    package cn.jfjb.crud.controller;
    
    import cn.jfjb.crud.exception.UserNotExistException;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    
    /**
     * @author john
     * @date 2019/11/22 - 19:38
     */
    @Controller
    public class HelloController {
       
        @RequestMapping({"/testException"})
        public String testException(@RequestParam("user") String user) {
            if (user != "aaa") {
                throw new UserNotExistException();
            }
            return "index";
        }
    }
    
    

  • 相关阅读:
    泛型的内部原理:类型擦除以及类型擦除带来的问题
    内部类访问局部变量的时候,为什么变量必须加上final修饰
    Web 测试经验总结
    故障测试
    智能硬件产品的测试经验总结
    web端测试和移动端测试的区别小记
    MVC模式介绍
    重定向与转发
    MySQL权限管理分配
    pt-heartbeat工具监控MySQL复制延迟
  • 原文地址:https://www.cnblogs.com/ifme/p/11921848.html
Copyright © 2011-2022 走看看