如何避免NullReferenceException

时间:2009-04-09 08:52:30

标签: c# exception exception-handling nullreferenceexception

 if (alMethSign[z].ToString().Contains(aClass.Namespace))

在这里,我加载一个exe或dll并检查它的命名空间。在某些dll中,没有名称空间,因此aclass.namespace不存在而且它正在抛出NullReferenceException

我必须避免它,它应该继续使用其余的代码。如果我使用try-catch,它会执行catch部分;我希望它继续使用其余的代码。

4 个答案:

答案 0 :(得分:13)

不要抓住异常。相反,防御它:

string nmspace = aClass.Namespace;

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

答案 1 :(得分:4)

在if语句中添加null测试。

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

答案 2 :(得分:3)

aClassType个实例吗?如果是这样 - 只需将其检查为null:

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

答案 3 :(得分:0)

或使用扩展方法检查任何空值,并返回空字符串或对象的字符串值:

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

}