프로그래밍 언어에 null 참조를 포함시키는 것이 "십억 달러의 실수"라고 들었습니다. 그런데 왜? 물론 NullReferenceExceptions이 발생할 수 있지만 무엇을해야합니까? 잘못 사용하면 언어의 모든 요소가 오류의 원인이 될 수 있습니다.
그리고 대안은 무엇입니까? 나는 이것을 말하는 대신에 :
Customer c = Customer.GetByLastName("Goodman"); // returns null if not found
if (c != null)
{
Console.WriteLine(c.FirstName + " " + c.LastName + " is awesome!");
}
else { Console.WriteLine("There was no customer named Goodman. How lame!"); }
당신은 이것을 말할 수 있습니다 :
if (Customer.ExistsWithLastName("Goodman"))
{
Customer c = Customer.GetByLastName("Goodman") // throws error if not found
Console.WriteLine(c.FirstName + " " + c.LastName + " is awesome!");
}
else { Console.WriteLine("There was no customer named Goodman. How lame!"); }
그러나 그것은 어떻게 더 낫습니까? 어느 쪽이든 고객이 존재하는지 확인하는 것을 잊어 버리면 예외가 발생합니다.
더 설명하기 때문에 CustomerNotFoundException이 NullReferenceException보다 디버깅하기가 조금 더 쉽다고 가정합니다. 그게 전부입니까?