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

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