NullReferenceException을 피하는 방법
-
06-09-2019 - |
문제
if (alMethSign[z].ToString().Contains(aClass.Namespace))
여기에서는 EXE 또는 DLL을로드하고 네임 스페이스를 확인합니다. 일부 DLL에는 네임 스페이스가 없으므로 aclass.namespace
존재하지 않고 던지고 있습니다 NullReferenceException
.
나는 그것을 피해야하며 코드의 나머지 부분을 계속해야합니다. Try-Catch를 사용하면 캐치 부분을 실행합니다. 나머지 코드를 계속하고 싶습니다.
해결책
~이다 aClass
ㅏ Type
사례? 그렇다면 -Null을 확인하십시오.
if (aClass != null && alMethSign[z].ToString().Contains(aClass.Namespace))
다른 팁
예외를 포착하지 마십시오. 대신, 그것에 대해 방어하십시오 :
string nmspace = aClass.Namespace;
if (nmspace != null && alMethSign[z].ToString().Contains(nmspace))
{
...
}
if 문에 null에 대한 테스트를 추가하십시오.
if(aClass.NameSpace != null && alMethSign[z].ToString().Contains(aClass.Namespace))
또는 널 검사를 확인하고 객체의 빈 문자열 또는 문자열 값을 반환합니다.
public static string ToSafeString(this object o)
{
return o == null ? string.Empty : o.ToString();
}
제휴하지 않습니다 StackOverflow