exception简单实例
每个新项目通常都需要设置一个Exception层次结构,通常总是相同的。
我将不详述我们应该扩展RuntimeException还是直接扩展Exception,或者层次结构根是否应该为FunctionalException / TechnicalException或TransientException / PersistentException。 由于我当前的问题是完全不相关的,这些将再次成为咆哮。
情况如下:当在调用层中发生严重错误时( 即 ,来自身份验证提供程序的身份验证失败),将使用已知的错误代码(例如123)创建一个新的FunctionalException。
publicclassFunctionalExceptionextendsRuntimeException{
privatelongerrorCode;
publicFunctionalException(longerrorCode){
this.errorCode=errorCode;
}
// Other constructors
}
此时,此方法有一些不错的优点:错误代码既可以记录下来,又可以通过适当的错误消息显示给用户。
缺点是为了分析在代码中有效使用身份验证失败异常的位置是完全不可能的。 由于我一直坚持在此代码库上添加新功能的任务,所以我必须说这很浪费时间。 尊敬的读者,在设计Exception层次结构时,请添加以下内容:
publicclassAuthenticationFailureExceptionextendsFunctionalException{
publicAuthenticationFailureException(){
super(123L);
}
// Other constructors
}
当然,这稍微冗长一些,但是您将保留上述所有优点,并让像我这样的可怜的维护者轻松地分析代码。 提前谢谢了!
翻译自: https://blog.frankel.ch/a-single-simple-rule-for-easier-exception-hierarchy-design/
exception简单实例