java 中用户定义异常的编码风格

Coding Style for User defined Exception in java

我正在做一个 java 项目。在浏览用户定义异常 class 的现有代码时,我遇到了如下代码:

public final class ApplicationException extends RuntimeException {

public static void enforce(final String message) {
    throw new ApplicationException(message);
}
private ApplicationException(final String message) {
    super(message);
}
}

每当我必须在代码中抛出异常时,我都会写

ApplicationException.enforce("exception message here");

我想知道这是某种编码风格或模式,即在 public 静态方法中包含异常的创建和抛出,并在我们想抛出异常时调用该方法?

开发人员选择这种方式抛出异常的原因可能是什么?为什么不直接写 throw new ApplicationException("some message"); 随时需要。

使用这种风格有什么好处?

提前致谢

我认为没有任何具体原因,而且该模式在 Java 项目中并不常用。

他大概只是为了好看才用了这样的代码。

new关键字封装在一个方法中,可以看做是把自定义异常变成了一种simple factory

这可能有利于以后维护 and/or 测试,因为您只需更改 enforce 方法的实现,调用它的客户端代码就会发生变化。