[英]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.