在我的课堂上,我正在验证自定义数据。适用许多条件。一旦失败,我想抛出一个特定的MyException。引发此MyException需要许多常用参数和一个自定义参数(基于实际失败)。因此,实际的抛出会花费许多字符来编写,并且由于代码重复而破坏了整洁。另外我也不得不扔太多次。我下定决心要创建一个私有方法,该方法准备并返回此MyException的新实例,并以唯一的自定义数据作为参数,因此代码可以更加简洁。

private MyException createMyException(final CustomErrorData errorData)
{
... some info gathering, parameterizing, etc...
return new MyException(errorData);
}

...

因此,抛出一个新的MyException要短得多:
throw createMyException(errorData);

我的问题是:在这种情况下,防止代码重复的正确做法是什么?我可能夸大了异常。

最佳答案

异常工厂-以前从未见过,但至少听起来像是适当的设计。

我只是担心-您似乎在设计异常抛出框架上投入了大量精力:向异常添加参数,状态等。您确实在代码中遇到了许多特殊情况吗?还是在适当处理预期条件时抛出异常?

通常抛出的异常是“仅用于日志”。在当前上下文中发生了不该发生的事情。开发人员应该在下一个版本中有所了解并进行更正。我们不应该使用异常来处理预期状态。

因此,在研究出色的异常创建代码之前,请仔细检查是否值得付出努力,或者应用程序的设计是否开始变得太有创意了。

07-28 02:11
查看更多