如果驗證東西在代碼中你可以用返回值工作表明什麼是錯的,或者你可以拋出一個異常。在我的控制器我有特殊的驗證這樣的:「驗證可能拋出異常」 - 命名規範和語義
void DoSomething()
{
Validate(); // throws exception if something is wrong
.....
}
我不知道是否有一個共同的命名約定,其言下之意是,這樣我就不需要添加註釋有異常時,什麼是錯的拋出// throws exception if something is wrong
和區別於if (!IsValid())
注意:validation-naming-conventions不回答我的問題。接受答案後
更新:我已經從這個問題
- AssertValid()或VerifyAndThrow()瞭解到的好名字(TNX @hacktick)
- 驗證必須與上下文區別(警告或錯誤)
- 例外驗證是一種合同或第二道防線,可能只存在於調試模式下,以確保周圍的
if (IsValid(...))
不會錯過任何東西(TNX科迪@灰)
你爲什麼選擇拋出異常?似乎並不明顯,驗證失敗是一個真正的例外情況。返回值有什麼問題? – 2011-01-05 09:46:31
我使用Exceptional Verification作爲第二道防線,以防if-s缺少某些東西 – k3b 2011-01-05 09:58:49