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

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

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

4

4 回答 4

13

不要捕获异常。相反,防御它:

string nmspace = aClass.Namespace;

if (nmspace != null && alMethSign[z].ToString().Contains(nmspace))
{
    ...
}
于 2009-04-09T08:55:36.040 回答
4

aClass实例Type吗?如果是这样 - 只需检查它是否为空:

if (aClass != null && alMethSign[z].ToString().Contains(aClass.Namespace))
于 2009-04-09T08:56:34.400 回答
4

在 if 语句中添加对 null 的测试。

if(aClass.NameSpace != null && alMethSign[z].ToString().Contains(aClass.Namespace))
于 2009-04-09T08:57:25.350 回答
0

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

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

}
于 2009-04-09T09:39:24.080 回答