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