2009-04-09 9 views
1
if (alMethSign[z].ToString().Contains(aClass.Namespace)) 

Ici, je charge un exe ou dll et vérifie son espace de noms. Dans certaines DLL, il n'y a pas d'espace de nom, donc aclass.namespace n'est pas présent et il lance un NullReferenceException.Comment éviter une exception NullReferenceException

Je dois juste l'éviter et il devrait continuer avec le reste du code. Si j'utilise try-catch, il exécute la partie catch; Je veux que ça continue avec le reste du code.

+0

Presque tous les cas de 'NullReferenceException' sont les mêmes. S'il vous plaît voir "[Qu'est-ce qu'une NullReferenceException dans .NET?] (Http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-in-net)" pour quelques conseils. –

Répondre

3

est-aClass une instance Type? Si oui - il suffit de cocher pour null:

if (aClass != null && alMethSign[z].ToString().Contains(aClass.Namespace)) 
13

Ne pas intercepter l'exception. Au lieu de cela, défendre contre elle:

string nmspace = aClass.Namespace; 

if (nmspace != null && alMethSign[z].ToString().Contains(nmspace)) 
{ 
    ... 
} 
4

Ajouter le test nul dans l'instruction if.

if(aClass.NameSpace != null && alMethSign[z].ToString().Contains(aClass.Namespace)) 
0

Ou utiliser une méthode d'extension pour que les contrôles pour toutes les valeurs nulles et non retourne une chaîne vide ou la valeur de chaîne de l'objet:

public static string ToSafeString(this object o) 
{ 
return o == null ? string.Empty : o.ToString(); 

} 
Questions connexes