при реализации / использовании методов, которые возвращают экземпляры объектов или работают с ними, какой самый элегантный подход к проверке параметров функции?
Метод для вызова:
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 просто выглядит лучше :).
Итак, какой способ более «элегантный»?