美文网首页
SpringMvc处理全局异常

SpringMvc处理全局异常

作者: Laube | 来源:发表于2019-05-08 16:14 被阅读0次

处理全局异常的方法主要为两种:

  • 实现HandlerExceptionResolver接口
  • @ControllerAdvice注解

第一种方法的一个局限性是,必须返回ModelAndView实例,如果有返回Json数据需求的话,就力不从心了;

第二种方法我使用的比较多,通过给处理类加上@ControllerAdvice注解或@RestControllerAdvice注解,然后给类中的方法加上@ExceptionHandler注解并指定异常类型,便使得其中的方法成为了指定异常处理器。返回的类型类似于Controller,添加了@ResponseBody注解便会返回REST资源,不添加则返回视图。

假定这样的需求:以.json结尾的请求出现异常则返回Json数据;以.page结尾的请求出现异常则返回视图,那么只需要这么写:

@RestControllerAdvice
public class SpringMvcExceptionAdvice {

  @ExceptionHandler(Throwable.class)
  public Object throwableHandler(HttpServletRequest request, Throwable exp) {
    if (request.getRequestURL().toString().endsWith(".json")) {
      return AjaxResponse.fail("请求JSON数据异常");
    }
    return new ModelAndView("errorPage");
  }
}

异常处理器的参数可以注入request,response,exception,类似于controller却有不同。

相关文章

  • Spring Mvc 异常处理

    SpringMvc 异常全局解读 异常处理思路 首先来看一下在springmvc中,异常处理的思路 如上图所示,系...

  • SpringMVC全局异常处理

    在日常的开发过程中,你肯定遇到过页面报500的问题,这个时候如果我想一想就会觉得害怕,我们的项目如果真的在线上出现...

  • springmvc全局异常处理

    首先定义一个异常类,BusinessException,这个类必须继承RuntimeException类,不然会一...

  • springmvc全局异常处理

    其实用springmvc来实现全局异常处理我在一起的学习demo中也用到了,今天因为有些地方不是那么清晰了,所以干...

  • SpringMvc处理全局异常

    处理全局异常的方法主要为两种: 实现HandlerExceptionResolver接口 @ControllerA...

  • SpringMVC 全局异常处理

    创建ExceptionResolver实现HandlerExceptionResolver接口: 添加@Compo...

  • 全局异常处理

    首先,处理思路,嗯对,就是想想: 其次,创建全局异常处理器,开写 最后,Springmvc中配置异常处理器 ok!...

  • 11.全局异常处理器

    GlobalExceptionResolver.java Springmvc.xml配置全局异常处理器 最终的日志...

  • SpringMVC全局异常

    目录 无SpringMVC全局异常时的流程图 SpringMVC全局异常流程图 配置文件

  • spring/springmvc 全局异常处理

    1.在项目中为什么要统一异常处理 当异常返回到前端页面的时候可以统一处理,避免前端无法处理异常 不做统一异常处理,...

网友评论

      本文标题:SpringMvc处理全局异常

      本文链接:https://www.haomeiwen.com/subject/fvqvoqtx.html