我有一个功能应该检查 COM 是否已在系统中注册。可能会发生,COM 已注册,但缺少 dll 文件 - 在这种情况下,函数也应该返回 false。MessageBox 仅用于调试目的:
public bool IsCOMInstalled(string name)
{
try
{
MessageBox.Show("?");
var obj = Activator.CreateInstance(Type.GetTypeFromProgID(name));
MessageBox.Show("!");
return true;
}
catch (Exception e)
{
MessageBox.Show(e.Message);
return false;
}
}
在 Windows XP 和 7 以上工作正常。在 Windows Server 2008 上,不处理异常。应用程序在显示“?”后立即崩溃。
这是为什么?如何让我的应用程序处理异常...?