在java的springboot框架中有几种异常处理方法?五种处理方式分享!

2021-08-03 10:31:12 浏览数 (3)

小编在上次讲完java这方面的相关内容之后呢!就有不少的小伙伴让我讲讲有关于springboot这方面的相关内容,那么今天小编就来和大家说说有关于:“在java的springboot框架中有几种异常处理方法?”这方面的相关内容分享!


方法一:自定义错误页面

有了解过的小伙伴们都知道在我们的springboot中默认的处理异常机制中,一旦我们运行的程序出现了异常那么 springboot就会向 /error 的 url 发送请求。而且在springboot中还有提供一个 BasicExceptionController 来处理 /error 请求,然后就会跳转到我们默认显示的异常页面中了!当然了我们也是可以将错误异常跳转到我们默认的自定义错误页面中,只需要在 src/main/resources/templates 目录下创建 error.html 页面,之后在添加下面这串代码: ​<span th:text="${exception}"></span>​。


方法二:@ExceptionHandle注解处理异常

对于这个方法的使用我们只要在​controller​中添加下面这个方法,代码如下所示:

@ExceptionHandler(value={java.lang.ArithmeticException.class})
public ModelAndView arithmeticExceptionHandler(Exception e) {
    ModelAndView mv = new ModelAndView();
    mv.addObject("error", e.toString());
    mv.setViewName("error");
    return mv;
}

方法三:@ControllerAdvice+@ExceptionHandler注解处理异常

那么在使用这个方法的时候,我们是需要创建个可以处理异常的全局异常类 ,然后再创建完成之后在这个类上我们在添加​@ControllerAdvice​注解就可以了,代码如下所示:

@ControllerAdvice
public class GlobalException {
    @ExceptionHandler(value={java.lang.ArithmeticException.class})
    public ModelAndView arithmeticExceptionHandler(Exception e) {
        ModelAndView mv = new ModelAndView();
        mv.addObject("error", e.toString());
        mv.setViewName("error");
        return mv;
    }
}

方法四: 配置SimpleMappingExceptionResolver处理异常 

这个方法和上面的方法三有点类似,在使用这个方法的时候需要在全局异常中添加一个方法完成异常类的统一处理,下面是相关代码:

@Configuration
public class GlobalException {
    public SimpleMappingExceptionResolver getSimpleMappingExceptionResolver() {
        SimpleMappingExceptionResolver resolver = new SimpleMappingExceptionResolver();
        Properties properties = new Properties();
        properties.put("java.lang.ArithmeticException", "error");
        resolver.setExceptionMappings(properties);
        return resolver;
    }
}

方法五:自定义HandlerExceptionResolver类处理异常 

那么这个方法则是需要在我们的全局异常类中实现 ​HandlerExceptionResolver​ 这个接口,下面是相关代码:

@Configuration
public class GlobalException implements HandlerExceptionResolver {
    @Override
    public ModelAndView resolverException(HttpServletRequest request, HttpServletResponse response, Object object, Exception exception) {
        ModelAndView mv = new ModelAndView();
        if(exception instanceof ArithmeticException) {
            mv.setViewName("error");
        }
        mv.addObject("error", exception.toString());
        return mv;
    }
}

总结:

那么以上的话就是小编应大家要求讲解java的springboot框架中的一个有关于:“在java的springboot框架中有几种异常处理方法?”这个问题的解决方法和相关内容分享,希望大家可以在文章中收获自己的想要的知识,那么对于哪些有喜欢java的小伙伴们大家可以在W3Cschool中进行学习和了解!


0 人点赞