2013-05-09 91 views
0

我们有一个创建操作,对传入的实体运行验证。如果此实体无效,应抛出什么异常? (上MSDN从文章):验证失败时应该抛出什么异常?

最初,我们要抛出ApplicationException的,但一些研究之后,似乎这是不正确

。x不掷或ApplicationException派生。

我们是否应该创建一个自定义异常并从ApplicationException继承?

在我们应该使用的.NET框架中是否存在异常?

或者,也许我们不应该抛出异常呢?

我不知道......

一些细节:

在这种特定的情况下,创建方法创建地址变更请求。业务规则规定一次只能有一个地址变更请求。验证错误可以来自一个的两种方案:

  1. 所述实体的属性未设置,或设置为一个不正确的值

  2. 的地址变更请求已经存在。

+0

'InvalidArgumentException'似乎是正确的,你的情况。最终,您可以创建适合您设计的自定义异常。 – PoweredByOrange 2013-05-09 23:16:15

回答

1

你应该抛出InvalidArgumentException

+0

我不确定这是否是在我们的具体情况下正确的方式。我已更新我的问题以提供更多详细信息。你仍然觉得'InvalidArgumentException'会适合案例#2吗? – 2013-05-09 23:15:27

+0

在第二种情况下,我会抛出一个自定义异常 – Kenneth 2013-05-09 23:25:10