ArgumentException или что-то свое?
От: stomsky Россия  
Дата: 26.08.10 06:01
Оценка:
Привет, народ!

Какое исключение вы выбрасываете, если свойства класса имею недопустимые значения на момент вызова некоторого метода этого класса? Пользуетесь стандартными 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) И. Ефремов
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.