package com.ruoyi.project.tool.weather.common; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.servlet.HandlerExceptionResolver; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; /** * 开发公司:SOJSON在线工具
* 版权所有:© www.sojson.com * 博客地址:http://www.sojson.com/blog/
*
* --- *
* 区分 责任人 日期 说明
* 创建 周柏成 2017年11月19日 01:46
*
* @author zhou-baicheng
* @version 1.0
* @email so@sojson.com
*/
@ControllerAdvice
public class SOJSONExceptionHandler implements HandlerExceptionResolver {
@Override
public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object o, Exception e) {
ModelAndView mv = new ModelAndView();
// set status code
response.setStatus(HttpStatus.BAD_REQUEST.value());
// set content type
response.setContentType(MediaType.APPLICATION_JSON_VALUE);
// set character encoding
response.setCharacterEncoding("UTF-8");
response.setHeader("Cache-Control", "no-cache, must-revalidate");
String message = e.getMessage();
String remsg = "抱歉,您的请求出现异常.";
int status = 400;
if("no_city_id".equalsIgnoreCase(message)){
remsg = "CityId不在返回之内";
status = 403;
}
if(null != message){
remsg = message;
}
try {
response.getWriter().write(String.format("{\"status\":%s,\"message\":\"%s\"}",status,remsg));
} catch (IOException e1) {
e1.printStackTrace();
}
return mv;
}
}