欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

spring boot(九)之异常处理

程序员文章站 2022-04-17 11:27:06
...

spring  boot异常处理

这里暂时介绍两种方法:
    (1)自定义错误页面
    (2) @ExceptionHandler和 @ControllerAdvice注解处理
    
1、 自定义错误页面
    spring boot提供了一种默认的异常处理页面,当项目中出现异常时,会请求/error请求,spring boot提供了一个BasicExceptionController类来处理/error请求,然后跳转到默认显示异常的页面。
    我们可以自定义一个页面来显示相关的错误信息,这样便于用户了解错误信息。这里自定义默认的异常页面有两种方法
    (1)首先,需要在本项目中新建一个文件夹。在项目的src目录下的main下的resources下(显示的只有src,不然其他的包下无法建立目标目录)新建一个static文件夹,在该文件夹下可以新建一个HTML页面用于展示所有的默认显示的异常页面。可以简单的在该页面输入一些文字用于验证即可。
    然后在src/main/java包下新建一个com.application.controller的包,在该包下新建一个类作为项目的一个控制器。该类必须实现ErrorController接口,用 @Controller 注解修饰,然后在该类里添加一个方法,方法的返回值为ModelAndView ,该方法用 @RequestMapping("/error") 匹配的是默认的error请求,然后添加一个 @ResponseBoby 注解,该注解修饰的方法的返回值注解作为http响应的值,因此该方法直接返回一个视图,也就是一个页面。在该方法里我们创建一个 ModelAndView对象并将要返回的页面的名称作为参数传进该类的构造方法里,这个页面就是static文件夹里的页面,spring boot默认的存放页面的位置。
    这里的注解的参数必须是“/error”,因为这是spring boot 默认的异常请求
  

     @RequestMapping(value="/error")
    public ModelAndView modelAndView()
    {
        return new ModelAndView("NewFile.html");
    }


    这样出现了异常都会跳转到NewFile.html页面中。
    (2)在pom.xml文件中添加thymeleaf依赖,完整的代码为:
      

     <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>


    添加此依赖后,在src/main/resources中添加templates文件夹,这个添加方法和上面的一样,然后在里面添加一个error.html文件作为默认显示异常的页面,网上指的一般都是这种方法,在templates文件夹里面添加error文件,但是很多多没有说要添加依赖,不添加依赖则不能够设置默认异常显示页面。添加此依赖后,默认的网页的文件夹就是templates了,因此,上面的那种方法就失效了。

    一般的,我们在进网页的时候经常会遇到404页面等,这个也是可以自定义的,这个页面是当用户访问的页面不存在的时候就会出现这个页面。我们如果自定义这个页面可以在src/main/resources目录下新建一个static文件夹,在里面再建一个error文件夹,然后在该文件夹里新建一个error.html页面,这个页面就是我们自定义的error页面,当访问的页面不存在的时候就可以进入该页面。


2、使用 @ExceptionHandle 和 @ ControllerAdvice 注解来处理异常

@ControllerAdvice 注解定义的是全局异常处理类4
@Exception 注解声明一个已异常处理方法,该注解有一个值,为xxxException.class,即为xxx类类型。然后该方法就可以处理该异常。
更多的处理方式可以根据不同的情况进行处理,以后会慢慢进行总结。

相关标签: 异常处理