springboot 异常注解
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot 异常注解相关的知识,希望对你有一定的参考价值。
参考技术A @ControllerAdvice,是Spring3.2提供的新注解,它是一个Controller增强器,可对controller中被 @RequestMapping注解的方法加一些逻辑处理。最常用的就是异常处理需要配合@ExceptionHandler使用。
当将异常抛到controller时,可以对异常进行统一处理,规定返回的json格式或是跳转到一个错误页面
分别访问testException和testMyException接口,可得到以下结果
如果不需要返回json数据,而要渲染某个页面模板返回给浏览器,那么可以这么实现:
SpringBoot学习13:springboot异常处理方式3(使用@ControllerAdvice+@ExceptionHandle注解)
问题:使用@ExceptionHandle注解需要在每一个controller代码里面都添加异常处理,会咋成代码冗余
解决方法:新建一个全局异常处理类,添加@ControllerAdvice注解即可
package com.bjsxt.exception; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.servlet.ModelAndView; /** * Created by Administrator on 2019/2/14. * 全局异常处理类 */ @ControllerAdvice public class GlobalException { /** * 处理ArithmeticException异常,该@ExceptionHandler注释的value属性可以是一个数组, * 然后再根据注入的exception判断对不同异常分别进行不同的处理,也可以写多个controller, * 对多个不同异常进行处理,这里采用第二种 * @param e 会将产生异常对象注入到方法中 * @return 该方法需要返回一个 ModelAndView:目的是可以让我们封装异常信息以及视图的指定 */ @ExceptionHandler(value = {ArithmeticException.class}) public ModelAndView arithmeticExceptionHandler(Exception e){ ModelAndView mv=new ModelAndView("error_arithmetic"); mv.addObject("msg",e.toString()); return mv; } /** * 处理NullPointerException异常 * @param e 会将产生异常对象注入到方法中 * @return 该方法需要返回一个 ModelAndView:目的是可以让我们封装异常信息以及视图的指定 */ @ExceptionHandler(value = {NullPointerException.class}) public ModelAndView nullPointerExceptionHandler(Exception e){ ModelAndView mv=new ModelAndView("error_nullPointer"); mv.addObject("msg",e.toString()); return mv; } }
以上是关于springboot 异常注解的主要内容,如果未能解决你的问题,请参考以下文章
SpringBoot学习13:springboot异常处理方式3(使用@ControllerAdvice+@ExceptionHandle注解)
springboot 使用@ControllerAdvice注解全局处理系统异常
SpringBoot 中 @ControllerAdvice 注解