iT邦幫忙

2024 iThome 鐵人賽

DAY 13
0

前言

本篇文章會介紹一個特別的設定的寫法,這些設定可以增加使用者體驗

GlobalExceptionHandler

看這個名字就知道他可以攔截所有例外錯誤,當我們在實作後端時,偶爾報錯都可以看到後端的 log 視窗中有一些錯誤發生,我們可以將這些錯誤攔截,讓後端知道報這個錯的時候要怎麼處理(給用戶看)

我們要先從 log 看到錯誤發生時他的錯誤名稱是什麼,以下圖為例,這裡的錯誤名稱就是 IllegalArgumentException ,我們先記好這個錯誤,稍後就把這個錯誤給攔截下來
image

首先,先建立一個 class ,名稱輸入 GlobalExceptionHandler
接著為他添加一個標籤 @ControllerAdvice

@ControllerAdvice
public class GlobalExceptionHandler {

}

接著使用 @ExceptionHandler 幫剛剛記好的錯誤添加到這裡,將錯誤給攔截

@ExceptionHandler(IllegalArgumentException.class)

最後我們就要來寫這個錯誤攔截時要回覆的訊息

    @ExceptionHandler(IllegalArgumentException.class)
    public ResponseEntity<String> handleIllegalArgumentException(Exception e){
        return ResponseEntity.badRequest().body("輸入參數有缺失 : " + e);
    }

就像這樣我們就可以將錯誤攔截,避免回傳錯誤訊息時會什麼都沒顯示,往後有看到什麼錯誤都可以在這個全域的錯誤攔截 class 進行攔截

這個是攔截後的效果
image


上一篇
[DAY 12] 後端結合身分驗證系統 (2)
下一篇
[DAY 14] 後端結合身分驗證系統 (4)
系列文
智慧語義互動平台:基於Spring和Semantic Kernel的Android應用創新30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言