知識庫 / JSON RSS 訂閱

JSON渲染異常與Spring

JSON,Spring Web
HongKong
10
09:53 PM · Dec 05 ,2025

1. 引言

Happy-path REST 已經相當成熟,Spring 使得在 Java 中輕鬆實現它。

但如果事情出錯呢?

在本教程中,我們將介紹 使用 Spring 將 Java 異常作為 JSON 響應的一部分

要了解更全面的信息,請查看我們關於使用 Spring 進行 REST 錯誤處理以及創建 Java 全局異常處理器的文章。

2. 一種標註解決方案

我們將使用三個基本的 Spring MVC 註解來解決這個問題:

  • @RestControllerAdvice,包含 @ControllerAdvice 以將周圍類註冊為每個 @Controller 應該瞭解的事實,以及 @ResponseBody 以告訴 Spring 將該方法的響應作為 JSON 渲染
  • @ExceptionHandler 以告訴 Spring 應該調用哪些方法的異常

這些註解一起創建一個 Spring Bean,該 Bean 處理我們配置的任何異常。 更多關於使用 @ControllerAdvice@ExceptionHandler 的信息。

3. 示例

首先,讓我們創建一個自定義異常,以便返回給客户端:

public class CustomException extends RuntimeException {
    // constructors
}

第二,我們定義一個類來處理異常並將其作為 JSON 傳遞給客户端:

@RestControllerAdvice
public class ErrorHandler {

    @ExceptionHandler(CustomException.class)
    @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
    public CustomException handleCustomException(CustomException ce) {
        return ce;
    }

}

請注意,我們添加了 @ResponseStatus 註解。這將指定要發送給客户端的狀態碼,在本例中為內部服務器錯誤。此外,@ResponseBody 將確保對象以 JSON 格式返回給客户端。最後,以下是一個示例控制器,展示瞭如何拋出異常:

@Controller
public class MainController {

    @GetMapping("/")
    public void index() throws CustomException {
        throw new CustomException();
    }

}

4. 結論

在本篇文章中,我們展示瞭如何在 Spring 中處理異常。此外,我們還展示瞭如何將這些異常序列化為 JSON 並返回給客户端。

user avatar
0 位用戶收藏了這個故事!
收藏

發佈 評論

Some HTML is okay.