【发布时间】:2010-10-12 15:32:02
【问题描述】:
我有一个具有最大长度要求的字符串属性,因为数据链接到数据库。如果调用者试图设置一个超过这个长度的字符串,我应该抛出什么异常?
例如,这个 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 提供一个案例,但在消费者眼中它并没有被称为函数 - 它位于作业的右侧操作员。
这个问题可能还可以扩展到包括在属性设置器中完成的各种数据验证,但我对上述案例特别感兴趣。
【问题讨论】:
标签: c# validation exception properties