打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
springboot统一异常处理方法

这个是统一异常处理类, @ControllerAdvice这个注解声明的表示统一异常处理,@ExceptionHandler(value = Exception.class)这个注解写在方法上表示,该方法处理哪个异常.

package com.buba.exceptionController;import org.springframework.web.bind.annotation.ControllerAdvice;import org.springframework.web.bind.annotation.ExceptionHandler;import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest;//捕捉工程所有异常@ControllerAdvicepublic class GloableExceptionController {    //拦截Exception类型异常    @ExceptionHandler(value = Exception.class)    public ModelAndView defaultExceptionHandler(HttpServletRequest request,Exception ex){        ModelAndView modelAndView = new ModelAndView("defaultException");        //获取请求路径        modelAndView.addObject("url",request.getRequestURL());        //异常对象        modelAndView.addObject("ex",ex);        //异常对象信息        modelAndView.addObject("message",ex.getMessage());        return modelAndView;    }    @ExceptionHandler(value = ArrayIndexOutOfBoundsException.class)    public ModelAndView defaultExceptionHandler2(HttpServletRequest request,Exception ex){        ModelAndView modelAndView = new ModelAndView("defaultException2");        //获取请求路径        modelAndView.addObject("url",request.getRequestURL());        //异常对象        modelAndView.addObject("ex",ex);        //异常对象信息        modelAndView.addObject("message",ex.getMessage());        return modelAndView;    }} 

这是两个异常页面,进行测试 

 

 

我controller写了两个异常方法,第一个是ArrayIndexOutOfBoundsException这个异常,第二个是NullPointerException

 

当访问第二个异常的时候,因为在异常处理类中没有精确指明有空指针异常,所以会找它的父类,exception,所以出来的是第一个异常页面

当访问第一个异常的时候,因为在异常处理类中有明确指定的这个异常,所以返回的是第二个页面

 

总结: 也就是说这个异常处理类中,可以获取所有的异常都拿excepion来接收,也可以明确指定哪个异常,跟上下顺序无关,有明确指定的异常会找明确指定的,没有就找父类.

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
spring boot中统一异常处理
Spring3中的异常处理HandlerExceptionResolver
判断Httprequest 是否ajax 请求的方法
SpringMVC处理异常的三种方式
知识点-Spring Boot 统一异常处理汇总
Spring MVC异常处理
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服