springboot自学之路-15(springboot统一异常处理)

目录

1.方式一:使用springboot默认的异常处理页面

2.方式二:自定义异常处理方法

一、引入依赖

二、在resources/public/目录下创建error文件夹。并创建5xx.html


1.方式一:使用springboot默认的异常处理页面

一、引入依赖

<!--引入freemarker begin-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-freemarker</artifactId>
        </dependency>
        <!--引入freemarker end-->

二、在resources/public/目录下创建error文件夹。并创建5xx.html

5xx.html默认会处理所有以5开头的异常,xx必须是小写的。其他的不需要再设置,springboot已经默认设置好了,同时你也可以定义4xx.html或者404.html等。

验证:

package com.example._05freemarker;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * @Package: com.example._05freemarker
 * @ClassName: FreemarkerController
 * @Description: <p>Description: </p>
 * @author: zq
 * @since: 2020/5/4 21:59
 * @version: 1.0
 * @Copyright: 2020 zq. All rights reserved.
 */
@Controller
public class FreemarkerController {

    @RequestMapping("/freemarkerPage")
    public String freemarkerPage(Model model) {

        int i = 1 / 0;
        model.addAttribute("name", "zhangsan");
        return "hellofreemarker";

    }

}

访问:http://localhost:8084/citic/freemarkerPage

2.方式二:自定义异常处理方法

新建异常处理器  ErrorController

package com.example._05freemarker;/**
 * @Package: com._06handleError
 * @ClassName: ErrorController
 * @Description: <p>Description: </p>
 * @author: zq
 * @since: 2020/5/4 22:24
 * @version: 1.0
 * @Copyright: 2020 zq. All rights reserved.
 */

import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.method.HandlerMethod;

/**
 * @Package: com._06handleError
 * @ClassName: ErrorController
 * @Description: <p>Description: </p>
 * @author: zq
 * @since: 2020/5/4 22:24
 * @version: 1.0
 * @Copyright: 2020 zq. All rights reserved.
 */
@ControllerAdvice
public class ErrorController {

    @ExceptionHandler(Exception.class)
    public String errorHandle(Exception ex, HandlerMethod method) {

        System.out.println("======统一异常处理======");
        System.out.println(ex.getMessage());
        System.out.println(method.getBean().getClass());
        System.out.println(method.getMethod().getName());
        return "404";
    }

}

此时还可以结合freemarker返回页面。在templates新建404.ftl文件。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>自定义404 freemarker页面</h1>
</body>
</html>

访问:http://localhost:8084/citic/freemarkerPage

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章