SpringMvc全局异常统一处理
2018-12-26 15:17
204 查看
版权声明:如若转载,请说明出处哦,谢谢! https://blog.csdn.net/a823007573/article/details/85262547
全局异常处理还是基于AOP的思想,在SpringMvc中实现起来很简单,参照如下代码,其中的Resp是自定义的统一响应格式类,可自行设计,RespType是自定义的响应信息常量。
注意:该类所在的包必须被spring扫描到容器中。
[code]/** * 统一异常处理 */ @RestControllerAdvice public class ControllerExceptionHandler { private static final Logger logger = LoggerFactory.getLogger(ControllerExceptionHandler.class); /** * 400 - Bad Request */ @ResponseStatus(HttpStatus.BAD_REQUEST) @ExceptionHandler(HttpMessageNotReadableException.class) public Resp<String> handleHttpMessageNotReadableException(HttpMessageNotReadableException e) { logger.error("请求参数读取错误", e); return new Resp<String>().error(RespType.BAD_REQUEST); } /** * 400 - Bad Request */ @ResponseStatus(HttpStatus.BAD_REQUEST) @ExceptionHandler({MethodArgumentNotValidException.class}) public Resp<String> handleValidationException(MethodArgumentNotValidException e) { logger.error("请求参数验证失败", e); return new Resp<String>().error(RespType.BAD_REQUEST); } /** * 405 - Method Not Allowed。HttpRequestMethodNotSupportedException * 是ServletException的子类,需要Servlet API支持 */ @ResponseStatus(HttpStatus.METHOD_NOT_ALLOWED) @ExceptionHandler(HttpRequestMethodNotSupportedException.class) public Resp<String> handleHttpRequestMethodNotSupportedException(HttpRequestMethodNotSupportedException e) { logger.error("请求方法不支持", e); return new Resp<String>().error(RespType.METHOD_NOT_ALLOWED); } /** * 415 - Unsupported Media Type。HttpMediaTypeNotSupportedException * 是ServletException的子类,需要Servlet API支持 */ @ResponseStatus(HttpStatus.UNSUPPORTED_MEDIA_TYPE) @ExceptionHandler({HttpMediaTypeNotSupportedException.class}) public Resp<String> handleHttpMediaTypeNotSupportedException(Exception e) { logger.error("content-type类型不支持", e); return new Resp<String>().error(RespType.UNSUPPORTED_MEDIA_TYPE); } /** * 500 - Internal Server Error */ @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) @ExceptionHandler(Exception.class) public Resp<String> handleException(Exception e) { logger.error("服务器内部错误", e); return new Resp<String>().error(RespType.INTERNAL_SERVER_ERROR); } }
代码参照了 书呆子Rico 的文章 REST风格框架实战:从MVC到前后端分离(附完整Demo)
相关文章推荐
- SpringMVC全局异常统一处理
- SpringMVC全局异常统一处理
- javaweb异常提示信息统一处理(使用springmvc,附源码)
- 【SpringMVC整合MyBatis】springmvc异常处理-全局异常处理器开发
- SpringMVC统一异常处理 返回JSON解决方案
- Java关于SpringMVC的全局异常处理
- springmvc 统一处理异常
- javaweb异常提示信息统一处理(使用springmvc,附源码)
- 框架 day89 涛涛商城项目(补)-activeMQ应用,及springMVC全局异常处理
- 关于应用的全局统一异常处理
- SpringMVC异常统一处理
- 【SpringMVC整合MyBatis】springmvc异常处理-全局异常处理器开发
- SpringMVC统一异常处理
- springmvc如何设置全局异常信息处理
- Spring boot异常统一处理方法:@ControllerAdvice注解的使用、全局异常捕获、自定义异常捕获
- javaweb异常提示信息统一处理(使用springmvc,附源码)
- springmvc 统一异常处理
- springMVC统一处理异常信息
- SpringMvc教程(十一)--如何实现全局的异常处理
- springmvc 通过异常增强返回给客户端统一格式 springmvc请求参数异常处理