使用注解处理异常
- 异常处理类
package com.uc.advice;import com.uc.enums.Code;import org.apache.log4j.Logger;import org.springframework.web.bind.MissingServletRequestParameterException;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;/** * 全局异常处理 * Created by yanhao on 2017/6/5. */@ControllerAdvicepublic class GlobalExceptionHandler { private final Logger logger = Logger.getLogger(GlobalExceptionHandler.class); // Exception处理 @ExceptionHandler(Exception.class) @ResponseBody public Object handle(Exception e) { logger.warn("Exception: " + e.getMessage()); // 返回内容 Mapresult = new HashMap (); result.put("message", e.getMessage()); // 请求参数为空的异常 if(e instanceof MissingServletRequestParameterException) { result.put("code", Code.PARAM_MISSING.getCode()); } // 业务失败返回 return result; }}
- 产生MissingServletRequestParameterException的地方
// required 是true情况下,为传值@RequestParam(value = "mode", required = true)String mode