Como evitar um NullReferenceException
-
06-09-2019 - |
Pergunta
if (alMethSign[z].ToString().Contains(aClass.Namespace))
Aqui, eu carregar um exe ou DLL e verificar o seu namespace. Em algumas dlls, não há namespace, de modo aclass.namespace
não está presente e ele está jogando um NullReferenceException
.
Eu tenho apenas para evitá-lo e ele deve continuar com resto do código. Se eu usar try-catch, ele executa a parte de captura; Eu quero que ele continue com o resto do código.
Solução
é aClass
uma instância Type
? Se assim for - basta verificar isso para nulo:
if (aClass != null && alMethSign[z].ToString().Contains(aClass.Namespace))
Outras dicas
Do not capturar a exceção. Em vez disso, defender contra ele:
string nmspace = aClass.Namespace;
if (nmspace != null && alMethSign[z].ToString().Contains(nmspace))
{
...
}
Adicione o teste para nulo na instrução if.
if(aClass.NameSpace != null && alMethSign[z].ToString().Contains(aClass.Namespace))
Ou usar um método de extensão para que verifica se há quaisquer valores nulos e ou retorna uma string vazia, ou o valor de string do objeto:
public static string ToSafeString(this object o)
{
return o == null ? string.Empty : o.ToString();
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow