У меня есть свойство строки, которое имеет требование максимальной длины, потому что данные связаны с базой данных. Какое исключение следует делать, если вызывающий объект пытается установить строку, превышающую эту длину?
Например, этот код С#:
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
, но это не называется функцией для глаз потребителя - это с правой стороны оператора присваивания.
Этот вопрос, вероятно, также может быть расширен, чтобы включить все виды проверки данных, сделанные в установщиках свойств, но меня особенно интересует описанный выше случай.