У меня есть свойство строки, которое требует максимальной длины, потому что данные связаны с базой данных. Какое исключение следует делать, если вызывающий пытается установить строку, превышающую эту длину?Какое исключение выбрали из сеттера?
Например, это 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
, но он не называется функцией для глаз потребителя - он находится справа от оператора присваивания.
Этот вопрос, вероятно, также может быть расширен, чтобы включать в себя все виды проверки данных, сделанные в установщиках свойств, но я особенно заинтересован в вышеуказанном случае.
Btv, Моно бросает ArgumentException в этом случае ... –
«ArgumentOutOfRangeException - Исключение, которое генерируется, когда значение аргумента находится вне допустимого диапазона значений, согласно определению вызванный метод " .... imo, Mono должен исправить свой код. –