Привет, народ!
Какое исключение вы выбрасываете, если свойства класса имею недопустимые значения на момент вызова некоторого метода этого класса? Пользуетесь стандартными ArgumentException и производными от него ArgumentNullException и ArgumentOutOfRange или используете что-то свое?
В MSDN сказано, что стандартные исключения должны выбрасываться, когда один из параметров вызываемого метода имеет недопустимое значение. С формальной точки зрения свойство класса — это не параметр функции. Хотя смысл тот же.
Уточню на примере. Есть класс:
public class MyClass
{
public int X {get; set;}
public void Func(int y)
{
// аргумент y должен быть положительным
if (y <= 0)
throw new ArgumentOutOfRange("y");
// свойство X тоже должно быть положительным
if (X <= 0)
throw new ???????
.....
}
...
}
Какое исключение надо сгенерить на месте "???????".
Вопрос, конечно, не принципиальный, но хочется подойти с точки зрения идеологической.
Красота — наивысшая степень целесообразности. (c) И. Ефремов