欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談SpringBoot如何正確攔截thymeleaf異常

 更新時(shí)間:2023年09月07日 09:27:42   作者:你行你上  
Thymeleaf是一個(gè)模板引擎工具,主要用于頁(yè)面渲染操作,本文主要介紹了淺談SpringBoot如何正確攔截thymeleaf異常,具有一定的參考價(jià)值,感興趣的可以了解一下

這是一篇可以正確攔截org.thymeleaf.exceptions.TemplateInputException異常的方法水礦石文章,不是解決業(yè)務(wù)問(wèn)題的文章,比如不經(jīng)常見(jiàn)到的

org.thymeleaf.exceptions.TemplateProcessingE
xception: Could not parse as each: "message : xxx " (template: "xxxx" - line xx, col xx)

thymeleaf異常復(fù)現(xiàn)

你是故意的,還是不小心的 ----我是故意的

成功攔截,使用自定義試圖,捕獲主要信息,減去一大推報(bào)錯(cuò)代碼,只顯示正常信息,顯得優(yōu)雅

為什么不生效

首先應(yīng)該知道 @ControllerAdvice 是攔截不成功的,百世(試)不得其姐(解),正常來(lái)說(shuō),異常是會(huì)走下面這一行代碼的

@ControllerAdvice
public class SysGlobalExceptionHandler<T> extends BasicController<Class<?>>{
    @ExceptionHandler(Exception.class)
    public ResponseEntity<Object> exception(Throwable e) {
    // 處理異常
    return ResponseEntity.status(this.response.getStatus()).body("Exception未定義異常" + e.getMessage());
    }
}

但是他是不正常的(因?yàn)閿r截不到),為什么,我也不知道,但是AI是這么說(shuō)的:@ControllerAdvice只能處理通過(guò)控制器拋出的異常,并不能處理其他組件拋出的異常。如果需要處理其他組件的異常,需要使用其他的異常處理機(jī)制。
聽(tīng)君一席話,如菜鳥(niǎo)開(kāi)大

怎么實(shí)現(xiàn)攔截生效呢

當(dāng)然是重新實(shí)現(xiàn) ErrorController接口了

public Object errorHandle(){
? ? //判斷狀態(tài)碼是500
? ? if (this.response.getStatus() == HttpStatus.INTERNAL_SERVER_ERROR.value()) {
? ? // 獲取異常信息
? ? Throwable throwable = (Throwable) request.getAttribute("javax.servlet.error.exception");
? ? // 判斷是不是模板異常
? ? if (throwable.getCause() instanceof TemplateInputException) {
? ? ? ? //這里其實(shí)也可以是TemplateInputException,throwable.getCause() instanceof TemplateInputException也可以是TemplateProcessingException,最終都是拋出TemplateProcessingException異常
? ? ? ? TemplateProcessingException templateProcessingException = (TemplateProcessingException) throwable.getCause();
? ? ? ? ParseException parseException = (ParseException) templateProcessingException.getCause();
? ? ? ? //這里就是自定義邏輯了
? ? ? ? this.msgFormat("模板出現(xiàn)異常 %s ", parseException.getLocalizedMessage());
? ? ? ? modelAndView.setViewName("err");
? ? ? ? // return this.Output(throwable.getClass());
? ? ? ? //return ResponseEntity.status(this.response.getStatus()).body(parseException.getLocalizedMessage());
? ? }
}
// this.response就是拋出原來(lái)的結(jié)果,就比如你寫(xiě)的邏輯沒(méi)有成功攔截到500狀態(tài)碼的其他異常,是啥就顯示啥
return this.response;
}

這樣就完成實(shí)現(xiàn)攔截到thymeleaf的異常,@ControllerAdvice處理不了的異常可以使用ErrorController來(lái)處理,耶穌也攔不住,魯某說(shuō)的

有很多東西是后知后覺(jué)的,一年前我可能不知道怎么處理,只能去處理業(yè)務(wù),避免出現(xiàn)這種異常,時(shí)間久了,好多知識(shí)點(diǎn)就慢慢領(lǐng)悟了。(多動(dòng)手)

到此這篇關(guān)于淺談SpringBoot如何正確攔截thymeleaf異常的文章就介紹到這了,更多相關(guān)SpringBoot攔截thymeleaf異常內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Tomcat內(nèi)存溢出分析及解決方法

    Tomcat內(nèi)存溢出分析及解決方法

    堆是給開(kāi)發(fā)人員用的上面說(shuō)的就是,是在JVM啟動(dòng)時(shí)創(chuàng)建;非堆是留給JVM自己用的,用來(lái)存放類(lèi)的信息的,本文將詳細(xì)介紹Tomcat內(nèi)存溢出,需要了解更多的朋友可以參考下
    2012-11-11
  • Java中BigDecimal類(lèi)的add()的使用詳解

    Java中BigDecimal類(lèi)的add()的使用詳解

    這篇文章主要介紹了Java中BigDecimal類(lèi)的add()的使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • MyBatis 自動(dòng)更新時(shí)間的方法實(shí)現(xiàn)

    MyBatis 自動(dòng)更新時(shí)間的方法實(shí)現(xiàn)

    本文主要介紹了MyBatis 自動(dòng)更新時(shí)間的方法實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-06-06
  • java代碼實(shí)現(xiàn)俄羅斯方塊

    java代碼實(shí)現(xiàn)俄羅斯方塊

    這篇文章主要為大家詳細(xì)介紹了java代碼實(shí)現(xiàn)俄羅斯方塊,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • SpringBoot無(wú)法使用jkd8問(wèn)題的解決方法

    SpringBoot無(wú)法使用jkd8問(wèn)題的解決方法

    這篇文章主要介紹了SpringBoot無(wú)法使用jkd8問(wèn)題的解決方法,文中通過(guò)圖文結(jié)合的形式給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-12-12
  • jackson 如何將實(shí)體轉(zhuǎn)json json字符串轉(zhuǎn)實(shí)體

    jackson 如何將實(shí)體轉(zhuǎn)json json字符串轉(zhuǎn)實(shí)體

    這篇文章主要介紹了jackson 實(shí)現(xiàn)將實(shí)體轉(zhuǎn)json json字符串轉(zhuǎn)實(shí)體,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • mybatis中bind標(biāo)簽和concat的使用說(shuō)明

    mybatis中bind標(biāo)簽和concat的使用說(shuō)明

    這篇文章主要介紹了mybatis中bind標(biāo)簽和concat的使用說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • Java調(diào)用高德地圖API根據(jù)詳細(xì)地址獲取經(jīng)緯度詳細(xì)教程

    Java調(diào)用高德地圖API根據(jù)詳細(xì)地址獲取經(jīng)緯度詳細(xì)教程

    寫(xiě)了一個(gè)經(jīng)緯度相關(guān)的工具,分享給有需求的小伙伴們,下面這篇文章主要給大家介紹了關(guān)于Java調(diào)用高德地圖API根據(jù)詳細(xì)地址獲取經(jīng)緯度,文中通過(guò)圖文以及代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-04-04
  • springboot整合websocket實(shí)現(xiàn)群聊思路代碼詳解

    springboot整合websocket實(shí)現(xiàn)群聊思路代碼詳解

    通過(guò)springboot引入websocket,實(shí)現(xiàn)群聊,通過(guò)在線websocket測(cè)試進(jìn)行展示。本文重點(diǎn)給大家介紹springboot整合websocket實(shí)現(xiàn)群聊功能,代碼超級(jí)簡(jiǎn)單,感興趣的朋友跟隨小編一起學(xué)習(xí)吧
    2021-05-05
  • springboot學(xué)習(xí)筆記之 profile多環(huán)境配置切換的實(shí)現(xiàn)方式

    springboot學(xué)習(xí)筆記之 profile多環(huán)境配置切換的實(shí)現(xiàn)方式

    這篇文章主要介紹了springboot profile多環(huán)境配置切換的實(shí)現(xiàn)方式,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-07-07

最新評(píng)論