Лучший способ проверить параметры функции: Проверяйте наличие null или try / catch

при реализации / использовании методов, которые возвращают экземпляры объектов или работают с ними, какой самый элегантный подход к проверке параметров функции?

Метод для вызова:

someType GetSomething(object x)
{
    if (x == null) {
        return;
    }

    //
    // Code...
    //
}

или лучше:

someType GetSomething(object x)
{
    if (x == null) {
        throw new ArgumentNullException("x");
    }

    //
    // Code...
    //
}

Вызов Метод:

void SomeOtherMethod()
{
    someType myType = GetSomething(someObject);

    if (someType == null) {
        return;
    }

}

или лучше:

void SomeOtherMethod()
{
    try {
        someType myType = GetSomething(someObject);
    } catch (ArgumentNullException) {
    }
}

При просмотре похожих вопросов причина, по которой не следует использовать try / catch, - это производительность. Но IMHO try-catch просто выглядит лучше :).

Итак, какой способ более «элегантный»?

7
задан Inno 21 October 2010 в 14:40
поделиться