我正在做一个Java项目。 在浏览用户定义的异常类的现有代码时,我遇到了如下所示的代码:
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");
我想知道这是某种编码风格或模式,即将 Exception 的创建和抛出包含在公共静态方法中,并在我们想要抛出异常时调用该方法?
开发人员选择这种方式抛出异常的原因可能是什么? 为什么不直接写 throw new ApplicationException("some message");
需要时。
使用这种样式的收益是什么?
提前致谢
它将 new
关键字封装在方法中,这可能被视为将用户定义的异常变成一种简单的工厂。
这对于以后的维护和/或测试可能有好处,因为您只需更改 enforce
方法的实现,调用它的客户端代码就会更改。
我认为没有任何具体的原因,并且该模式在Java项目中并不常用。
他可能只是用这样的代码来看起来不错。