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;
        }
    }
  • 相关阅读:
    控件右键菜单的实现以及选中后勾选
    DataGridView控件使用
    return,continue,break的区别
    break和continue的区别 循环终止办法
    事件
    跨线程改变控件属性 线程调用带参数方法
    XML配置文件相关
    抽象类及与接口的区别
    字典
    Oracle学习第一天
  • 原文地址:https://www.cnblogs.com/maple92/p/10781056.html
Copyright © 2011-2022 走看看