オブジェクトのインスタンスを返すまたは操作するメソッドを実装/使用する場合、関数パラメーターをチェックするための最も洗練されたアプローチは何ですか?
呼び出すメソッド:
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の方が見栄えがします:)。
では、どちらがより「エレガント」なのでしょうか。