小D課堂 - 零基礎入門SpringBoot2.X到實戰_第4節 Springboot2.0單元測試進階實戰和自定義異常處理_2一、SpringBoot2.x配置全局異常返回自定義頁面

筆記

五、SpringBoot2.x配置全局異常返回自定義頁面
    簡介:使用SpringBoot自定義異常和錯誤頁面跳轉實戰

    一、返回自定義異常界面,須要引入thymeleaf依賴
        <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>


    二、resource目錄下新建templates,並新建error.html
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.setViewName("error.html");
        modelAndView.addObject("msg", e.getMessage());
        return modelAndView;


        https://docs.spring.io/spring-boot/docs/2.1.0.BUILD-SNAPSHOT/reference/htmlsingle/#boot-features-error-handling
 html

開始

首先須要添加模板引擎的Thymeleaf

spring

新建異常類,繼承RuntimeException運行時異常最高類。 這裏必定要繼承RuntimeException

在CustomExtHandler異常類裏面新增方法,執行新建的MyException類是異常處理類。


咱們須要作頁面的跳轉。就須要作一個頁面。在templates類下新建,error.html頁面


出異常就會經過modelAndView機械到error.html頁面


這裏加入異常的消息,模板內咱們並無獲取,這裏意義不大

新建一個Controller的方法myexc裏面拋出的異常是 咱們自定義的異常類MyException

啓動測試

自動跳轉到異常頁面

首先是訪問這個Controller裏面的方法,拋出異常。被spring監聽到了。

跳轉到CustomExtHandler由於最上面用了@RestControllerAdvice。而後會根據異常的種類去找對應的handler方法

咱們拋出的是MyException異常,因此就會交給這個handler去處理。進去方法後就會進行頁面的跳轉到error.html

咱們能夠自定義異常返回數據



返回json數據

改爲MyException。而後code設置爲獲取當前的getCode錯誤代碼

在這個handler拋出一個499的異常

獲取到了拋出的代碼 499

自定義的異常內容

再去獲取錯誤信息

獲取異常的信息
 
相關文章
相關標籤/搜索