国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

SpringBoot全局異常頁(yè)面處理學(xué)習(xí)

這篇具有很好參考價(jià)值的文章主要介紹了SpringBoot全局異常頁(yè)面處理學(xué)習(xí)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

首先我們先在控制器中寫一個(gè)異常,默認(rèn)情況下我們的SpringBoot異常頁(yè)面是這個(gè)樣子的。

示例代碼如下:

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author qinxun
 * @date 2023-06-15
 * @Descripion: 測(cè)試
 */
@RestController
public class IndexController {

    @GetMapping("/index")
    public String toIndex() {
        // 500狀態(tài)碼
        int i = 1 / 0;
        return "index";
    }
}

SpringBoot全局異常頁(yè)面處理學(xué)習(xí)

?一、自定義靜態(tài)異常頁(yè)面

自定義靜態(tài)異常頁(yè)面,我們可以分成兩種方式,第一種就是使用HTTP狀態(tài)碼來(lái)命名頁(yè)面,例如404.html,403.html,500html等。另一種就是直接定義一個(gè)4xx.html,表示400-499狀態(tài)碼的頁(yè)面,5xx.html表示狀態(tài)碼500-599的異常頁(yè)面。

我們?cè)赾lasspath:/static/error/路徑下定義相關(guān)異常頁(yè)面

SpringBoot全局異常頁(yè)面處理學(xué)習(xí)

?4xx.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
  <div>Http狀態(tài)碼400-499的異常頁(yè)面</div>
</body>
</html>

5xx.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div>Http狀態(tài)碼500-599的異常頁(yè)面</div>
</body>
</html>

啟動(dòng)項(xiàng)目,如果項(xiàng)目拋出HTTP狀態(tài)碼500的錯(cuò)誤,就會(huì)自動(dòng)顯示5xx.html這個(gè)頁(yè)面,反之拋出狀態(tài)碼400的錯(cuò)誤,就會(huì)顯示4xx.html這個(gè)頁(yè)面。

SpringBoot全局異常頁(yè)面處理學(xué)習(xí)

?二、自定義動(dòng)態(tài)異常頁(yè)面

SpringBoot全局異常頁(yè)面處理學(xué)習(xí)

?4xx.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>4xx</h1>
<table border="1">
    <tr>
        <td>path</td>
        <td>error</td>
        <td>message</td>
        <td>status</td>
    </tr>
    <tr>
        <td th:text="${path}"></td>
        <td th:text="${error}"></td>
        <td th:text="${message}"></td>
        <td th:text="${status}"></td>
    </tr>
</table>
</body>
</html>

5xx.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>5xx</h1>
<table border="1">
    <tr>
        <td>path</td>
        <td>error</td>
        <td>message</td>
        <td>status</td>
    </tr>
    <tr>
        <td th:text="${path}"></td>
        <td th:text="${error}"></td>
        <td th:text="${message}"></td>
        <td th:text="${status}"></td>
    </tr>
</table>
</body>
</html>

如果動(dòng)態(tài)異常頁(yè)面和靜態(tài)異常頁(yè)面同時(shí)存在,默認(rèn)使用動(dòng)態(tài)頁(yè)面,完整的錯(cuò)誤頁(yè)面查找方式應(yīng)該是:

發(fā)生500錯(cuò)誤->查找動(dòng)態(tài)500.html頁(yè)面->查找靜態(tài)500.html頁(yè)面->查找動(dòng)態(tài)5xx.html頁(yè)面->查找靜態(tài)5xx.html頁(yè)面

頁(yè)面上使用的path、error、message、status默認(rèn)為SpringBoot的異常機(jī)制返回的。

我們重新訪問接口:

SpringBoot全局異常頁(yè)面處理學(xué)習(xí)

?我們可以創(chuàng)建一個(gè)自定義類實(shí)現(xiàn)異常數(shù)據(jù)返回處理。

示例代碼如下:

import org.springframework.boot.web.error.ErrorAttributeOptions;
import org.springframework.boot.web.servlet.error.DefaultErrorAttributes;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.WebRequest;

import java.util.Map;

/**
 * @author qinxun
 * @date 2023-06-16
 * @Descripion: 自定義異常數(shù)據(jù)返回
 */
@Component
public class MyErrorAttributes extends DefaultErrorAttributes {
    @Override
    public Map<String, Object> getErrorAttributes(WebRequest webRequest, ErrorAttributeOptions options) {
        Map<String, Object> map = super.getErrorAttributes(webRequest, options);
        if ((Integer) map.get("status") == 500) {
            map.put("message", "服務(wù)器內(nèi)部錯(cuò)誤!");
        }
        return map;
    }
}

啟動(dòng)項(xiàng)目,我們重新訪問接口:

SpringBoot全局異常頁(yè)面處理學(xué)習(xí)

?異常頁(yè)面顯示了我們自定義的異常數(shù)據(jù)。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-490467.html

到了這里,關(guān)于SpringBoot全局異常頁(yè)面處理學(xué)習(xí)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • SpringBoot全局異常處理 | Java

    SpringBoot全局異常處理 | Java

    ? 簡(jiǎn)單說(shuō)兩句 ? 作者: 后端小知識(shí) CSDN 個(gè)人主頁(yè) :后端小知識(shí) ?? GZH : 后端小知識(shí) ?? 歡迎關(guān)注 ?? 點(diǎn)贊 ?? 收藏 ?? 留言 ?? 親愛的友友們,我們今天來(lái)講一講 SpringBoot 的全局異常處理吧?? ??什么是全局異常? 全局異常指的是在程序運(yùn)行過程中發(fā)生的非預(yù)期異常,

    2024年02月08日
    瀏覽(15)
  • SpringBoot 全局異常處理——解決404/500

    SpringBoot要全局處理 Spring Boot 應(yīng)用程序中的 HTTP 404 和 500 錯(cuò)誤,您可以自定義一個(gè)異常處理器類,并使用 @ControllerAdvice 和 @ExceptionHandler 注釋來(lái)攔截和處理這些異常。 下面是一種可能的實(shí)現(xiàn)方式,它捕獲 HTTP GET請(qǐng)求 中 PathVariable 參數(shù)類型不匹配、參數(shù)格式錯(cuò)誤以及其他所有未

    2024年02月06日
    瀏覽(20)
  • springboot優(yōu)雅的統(tǒng)一返回格式 + 全局異常處理(包括404等異常)

    目錄 1.自定義枚舉類 2.自定義統(tǒng)一返回格式類 3.統(tǒng)一返回格式的高級(jí)實(shí)現(xiàn) 4.全局異常處理 5.更優(yōu)雅的全局異常處理 6.處理404錯(cuò)誤 該枚舉類為我們和前端約定好的返回狀態(tài)碼和描述信息,可根據(jù)自己的需求修改狀態(tài)碼和描述 @Data 注解為L(zhǎng)ombok工具類庫(kù)中的注解,提供類的get、s

    2024年02月11日
    瀏覽(27)
  • SpringBoot 如何使用 @ControllerAdvice 注解進(jìn)行全局異常處理

    SpringBoot 如何使用 @ControllerAdvice 注解進(jìn)行全局異常處理

    在 Web 開發(fā)中,異常處理是非常重要的一環(huán)。在 SpringBoot 框架中,我們通常使用 @ExceptionHandler 注解來(lái)處理 Controller 層的異常。但是,如果想要處理全局異常,我們需要使用 @ControllerAdvice 注解。本文將介紹如何在 SpringBoot 中使用 @ControllerAdvice 注解進(jìn)行全局異常處理。 @Controll

    2024年02月10日
    瀏覽(23)
  • 7.11 SpringBoot實(shí)戰(zhàn) 全局異常處理 - 深入細(xì)節(jié)詳解

    7.11 SpringBoot實(shí)戰(zhàn) 全局異常處理 - 深入細(xì)節(jié)詳解

    全局異常處理, 你真的學(xué)會(huì)了嗎? 學(xué)完上文,你有思考和動(dòng)手實(shí)踐嗎? 上文咱們主要講的是全局異常處理機(jī)制,說(shuō)句實(shí)在話,如果沒有人帶你,即使你掌握了機(jī)制,也未必能玩轉(zhuǎn)異常處理!異常處理真的很重要,所以本文帶大家在圖書實(shí)戰(zhàn)項(xiàng)目中落地!純實(shí)戰(zhàn)經(jīng)驗(yàn)分享,非常

    2024年02月11日
    瀏覽(21)
  • SpringBoot中@ControllerAdvice/@RestControlAdvice+@ExceptionHandler實(shí)現(xiàn)全局異常捕獲與處理

    SpringBoot中@ControllerAdvice/@RestControlAdvice+@ExceptionHandler實(shí)現(xiàn)全局異常捕獲與處理

    在編寫Controller接口時(shí),為避免接口因?yàn)槲粗漠惓?dǎo)致返回不友好的結(jié)果和提示。 如果不進(jìn)行全局異常捕獲則需要對(duì)每個(gè)接口進(jìn)行try-catch或其他操作。 ? 可以對(duì)Controller進(jìn)行全局的異常捕獲和處理,一旦發(fā)生異常,則返回通用的500響應(yīng)碼與通用錯(cuò)誤提示。 并將異常發(fā)生的具

    2024年02月05日
    瀏覽(24)
  • 案例01-tlias智能學(xué)習(xí)輔助系統(tǒng)04-登錄認(rèn)證+全局異常處理

    案例01-tlias智能學(xué)習(xí)輔助系統(tǒng)04-登錄認(rèn)證+全局異常處理

    目錄 1、基礎(chǔ)登錄 ?2、登錄校驗(yàn) 2.1、會(huì)話跟蹤技術(shù): Cookie、Session ?JWT令牌 2.2、請(qǐng)求過濾 方式一、過濾器(Filter) 方法二:攔截器(interceptor) Filter與Interceptor的區(qū)別? ?3、全局異常處理器 Cookie、Session Cookie和Session 優(yōu)缺點(diǎn): Cookie:優(yōu)點(diǎn):HTTP協(xié)議中支持的技術(shù) ? ? ? ? ?

    2024年02月01日
    瀏覽(56)
  • uniapp微信小程序投票系統(tǒng)實(shí)戰(zhàn) (SpringBoot2+vue3.2+element plus ) -全局異常統(tǒng)一處理實(shí)現(xiàn)

    uniapp微信小程序投票系統(tǒng)實(shí)戰(zhàn) (SpringBoot2+vue3.2+element plus ) -全局異常統(tǒng)一處理實(shí)現(xiàn)

    鋒哥原創(chuàng)的uniapp微信小程序投票系統(tǒng)實(shí)戰(zhàn): uniapp微信小程序投票系統(tǒng)實(shí)戰(zhàn)課程 (SpringBoot2+vue3.2+element plus ) ( 火爆連載更新中... )_嗶哩嗶哩_bilibili uniapp微信小程序投票系統(tǒng)實(shí)戰(zhàn)課程 (SpringBoot2+vue3.2+element plus ) ( 火爆連載更新中... )共計(jì)21條視頻,包括:uniapp微信小程序投票系統(tǒng)實(shí)

    2024年02月03日
    瀏覽(23)
  • Spring MVC學(xué)習(xí)隨筆-Ajax集成(JSON格式返回?cái)?shù)據(jù))、攔截器(MyInterceptor)、全局異常處理(GlobalExceptionResolver)

    Spring MVC學(xué)習(xí)隨筆-Ajax集成(JSON格式返回?cái)?shù)據(jù))、攔截器(MyInterceptor)、全局異常處理(GlobalExceptionResolver)

    學(xué)習(xí)視頻:【編程不良人】繼spring之后快速入門springmvc,面對(duì)SpringMVC不用慌 引入相關(guān)依賴 開發(fā)控制器 日期格式修正 可以正常響應(yīng) 攔截器 :Interceptor 攔截 中斷 類似于javaweb中的Filter,不過沒有Filter那么強(qiáng)大 作用 Spring MVC的攔截器是一種用于在請(qǐng)求處理過程中進(jìn)行預(yù)處理和后處

    2024年02月05日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包