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;
        }
    }
  • 相关阅读:
    继承String?
    java sizeof
    什么是java序列化,如何实现java序列化?
    负载均衡的时候如何实现相同的session被分配到同一个服务器
    如何实现session共享
    java 字符串排序
    forward和redirect的区别
    数字签名 数字证书
    找出数组中重复次数最多的元素并打印
    get和post区别
  • 原文地址:https://www.cnblogs.com/maple92/p/10781056.html
Copyright © 2011-2022 走看看