zoukankan      html  css  js  c++  java
  • Spring 对Controller异常的统一处理

    对于Controller的异常处理,分为两种,一种是对已知的异常处理,一种是未知的异常处理

    1、定义自定义异常类

    /**
     * @author hzc
     *
     */
    public class UserNotExitException extends RuntimeException {
    
        /**
         * 
         */
        private static final long serialVersionUID = -6271509017751433865L;
    
        private String id;
        
        public UserNotExitException(String id) {
            super("user not exit");
            this.setId(id);
        }
    
        public String getId() {
            return id;
        }
    
        public void setId(String id) {
            this.id = id;
        }
        
    }

    2、使用@ControllerAdvice

    import java.util.HashMap;
    import java.util.Map;
    import org.springframework.http.HttpStatus;
    import org.springframework.web.bind.annotation.ControllerAdvice;
    import org.springframework.web.bind.annotation.ExceptionHandler;
    import org.springframework.web.bind.annotation.ResponseBody;
    import org.springframework.web.bind.annotation.ResponseStatus;
    import com.maple.exception.UserNotExitException;
    
    @ControllerAdvice
    public class ControllerExceptionHandle { 
        @ExceptionHandler(UserNotExitException.class)
        @ResponseBody
        @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
        public Map<String, Object> handleUserNotExistException(UserNotExitException ex){
            Map<String, Object> result = new HashMap<>();
            result.put("id", ex.getId());
            result.put("message", ex.getMessage());     
            return result;
        }
    }
  • 相关阅读:
    ADB命令无法导出文件到物理机上处理办法
    mysql 分页offset过大性能问题解决思路
    0.通用编程基础
    win10去除快捷方式小箭头
    Java经典编程题
    win10家庭版打开组策略
    js常用事件列表
    计算器 输入式子计算结果 (字符串、抛异常)
    题库
    MyEclipse自动补全设置
  • 原文地址:https://www.cnblogs.com/maple92/p/10781056.html
Copyright © 2011-2022 走看看