如果验证东西在代码中你可以用返回值工作表明什么是错的,或者你可以抛出一个异常。在我的控制器我有特殊的验证这样的:“验证可能抛出异常” - 命名规范和语义
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