簡體   English   中英

如何在Spring Boot Java應用程序中提高自定義異常的可讀性

[英]How to improve readability of custom exceptions in a Spring Boot Java application

我們有一個典型的帶有服務,REST控制器和存儲庫的Spring Boot Java應用程序。

我們通過從catch塊中重新拋出它們,然后在spring全局異常處理程序中(通過@ControllerAdvice )處理它們,從而在服務和控制器中使用自定義的運行時異常。

通常,我們使用throw new SomeCustomException("Message"); 構造,但對我來說卻不太好,因為很難看到整個代碼中都拋出了什么異常。

考慮到如何提高代碼的可讀性,我想到了創建靜態最終實例,然后像throw new SOME_CUSTOM_EXCEPTION;一樣使用它們的throw new SOME_CUSTOM_EXCEPTION;

在這種情況下,很明顯可以拋出哪些異常類,並且很容易檢查是否在全局異常處理程序中對其進行了處理。

我看到那些常量異常實例有一些弊端。 首先,如果需要將外部異常傳遞給自定義異常,或者同一類多次拋出不同消息,該怎么辦?

另一個想法是將異常消息提取為常量。 但是,有時我們沒有傳遞任何消息。

是否有最佳實踐來指示類可以拋出哪些異常,或者我考慮過多,並且可以throw new異常?

如果您想提高可讀性,也許其他具有更詳細名稱的自定義例外就足夠了。 另外,您可以具有默認的消息構造函數,並將其他常見消息字符串存儲在異常類中作為靜態常量:

public class CustomException {
    public static String ERROR_MESSAGE = "some error message";

    public CustomException() {
        super("Default message")
    }

    public CustomException(String message) {
        super(message)
    }
}

throw new CustomException(CustomException.ERROR_MESSAGE);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM