如果您在代码中验证某些内容,则可以使用返回值来表示出现问题,或者抛出异常。在我的控制器中,我有这样的例外验证:
void DoSomething()
{
Validate(); // throws exception if something is wrong
.....
}
我想知道是否有一个共同的命名约定意味着在出现错误时抛出异常,这样我就不需要添加注释// throws exception if something is wrong
并区别于if (!IsValid())
注意:validation-naming-conventions没有回答我的问题。
接受答案后更新:我从这个问题中学到了什么
if (IsValid(...))
不会错过任何东西(tnx @ Cody Gray) )答案 0 :(得分:2)
通常你会使用:
// for a validations that returns just plain yes no (true|false). in the case of a property use caching for the last validationresult.
bool IsValid
// for a validation that returns a list of errors of some sort (messagelist, id list, custom objects, whatever you need).
object Validate();
// validates and throws an exception if one or more error occured.
void ValidateAndThrow();
另外请务必考虑是否需要某种警告。例如,如果您验证您的注册DTO模型,并且想要警告用户密码是否较弱但是不想阻止用户在他选择时保存它。