我应该为每种验证创建一个专门的例外,对于样本:
public void doSomething(Text text) {
if (!text.isAlphaNumeric()) throw new NonAlphaNumericException("Text should be alphanumeric");
if (text.isBlank()) throw new BlankException("Text should not be empty or null");
...
}
或者,我应该做一般的例外:
public void doSomething(Text text) {
if (!text.isAlphaNumeric()) throw new TextValidationException("Text should be alphanumeric");
if (text.isBlank()) throw new TextValidationException("Text should not be empty or null");
...
}
答案 0 :(得分:3)
如果使用第一种方法,则调用者可以单独处理每个异常:
try
{
doSomething(new Text("blah blah"));
}
catch(NonAlphaNumericException e){/* do something */}
catch(BlankException e){/* do something else */}
答案 1 :(得分:0)
这取决于您需要对这些例外做些什么。
另一种方法是使用混合方法:您创建一个主要的ExceptionType和一些派生的异常。
通过这种方式,您可以选择要以特定方式提出/管理的异常。其他人可以通过更一般的方式进行管理。
这听起来像是java.lang.Exception和其他子类型之间的区别(例如IOException等......)。