2013-05-09 92 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