객체가 null 인 경우 추가 처리를 방지하고 싶습니다.
다음 코드에서 객체가 null인지 확인합니다.
if (!data.Equals(null))
과
if (data != null)
그러나에 메시지가 표시 NullReferenceException
됩니다 dataList.Add(data)
. 오브젝트가 널 (NULL) 인 경우, if
-statement를 입력하지 않아야합니다!
따라서 객체가 null인지 확인하는 적절한 방법인지 묻습니다.
public List<Object> dataList;
public bool AddData(ref Object data)
bool success = false;
try
{
// I've also used "if (data != null)" which hasn't worked either
if (!data.Equals(null))
{
//NullReferenceException occurs here ...
dataList.Add(data);
success = doOtherStuff(data);
}
}
catch (Exception e)
{
throw new Exception(e.ToString());
}
return success;
}
이것이 객체가 null인지 확인하는 올바른 방법이라면 내가 뭘 잘못하고 있습니까 (NullReferenceException을 피하기 위해 객체에서 추가 처리를 방지하려면 어떻게해야합니까?)
!= null
null 검사에 사용해야 합니다. .Equals
객체가 null 인 경우 항상 예외가 발생합니다.
throw e;
별로 좋지 않습니다. throw;
반면에 ...
e.ToString()
오류 메시지뿐만 아니라 모든 오류 InnerExceptions
와 스택 추적 을 포함하는 문자열을 생성합니다 . 그래서 그것은 매우 뚱뚱한 무거운 예외 메시지입니다. 이 정보를 보존하고 정보가있는 곳에 보관하려면 간단히 사용하십시오 throw;
.
throw e;
대throw new Exception(e.ToString());