在实现/使用返回或处理对象实例的方法时,检查函数参数的最优雅方法是什么?
调用方法:
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 的原因是性能。但恕我直言,try-catch 看起来更好:)。
那么,哪种方式更“优雅”呢?