2015-03-13 103 views
1

我正在开发一个java项目。而浏览用户定义的异常类的现有代码,我遇到了一个写的代码如下: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");

使用该风格的收益是多少?

在此先感谢

回答

0

它在一个方法中封装了new关键字,这可能被看作是将用户定义的异常变成一种simple factory

这可能对以后的维护和/或测试具有优势,因为您只需更改enforce方法的实现,并且调用该方法的客户端代码将发生更改。

0

我不认为有它的任何具体的原因和模式没有在Java项目中使用。

他可能只是用这样的代码很好看。