我有一个字符串属性,因为数据与数据库相关联,所以有最大长度要求。如果调用者试图设置超过此长度的字符串,我应该抛出什么异常?
例如,这段 C# 代码:
例如,这段 C# 代码:
public string MyProperty
{
get
{
return _MyBackingField;
}
set
{
if (value.Length > 100)
throw new FooException("MyProperty has a maximum length of 100.");
_MyBackingField = value;
}
}
我考虑了 ArgumentException
,但感觉不太合适。从技术上讲,它是一个函数 - MyProperty_set(string value)
- 因此可以为 ArgumentException
辩护,但在消费者看来,它并没有作为函数被调用 - 它在赋值运算符的右侧。
这个问题可能也可以扩展到包括在属性设置器中进行的所有数据验证,但我特别关注上述情况。