방법이 있다고 가정 해 봅시다.
public void DoSomething(ISomeInterface someObject)
{
if(someObject == null) throw new ArgumentNullException("someObject");
someObject.DoThisOrThat();
}
나는 던지는 ArgumentNullException
것이 "올바른" 것이라고 믿도록 훈련 되었지만 "객체 참조가 객체의 인스턴스로 설정되지 않았습니다"오류는 버그가 있음을 의미합니다.
왜?
참조를 캐싱하고 someObject
나중에 사용하는 경우 전달 될 때 null을 확인하고 일찍 실패하는 것이 좋습니다. 그러나 다음 줄에서이를 참조하지 않는다면 왜 점검을해야합니까? 어떤 식 으로든 예외를 던질 것입니다.
편집 :
방금 나에게 ... 역 참조 된 null에 대한 두려움이 당신을 확인하지 않는 C ++과 같은 언어에서 온 것입니까 (즉, 메모리 위치 0 + 방법 오프셋에서 일부 방법을 실행하려고 시도합니까)?