首页 > 解决方案 > 有什么方法可以防止 COM 导入接口抛出 COMException 吗?

问题描述

我已经声明了一个 COM 接口,IFileDialog并且一切正常,但是,有一件烦人的事情,如果对话框关闭或取消,在调用之后int Show([Optional] IntPtr owner);,不会返回 HRESULT,而是抛出 COMException。有什么办法可以防止这种情况发生吗?

最初想写一个方法为:

public DialogResult Show()
{
    // _value = IFileDialog
    return (_value.Show() == 0) ? DialogResult.Ok : DialogResult.Cancel;
}

但我不得不把它写成:

public DialogResult Show()
{
    try
    {
        return (_value.Show() == 0) ? DialogResult.Ok : DialogResult.Cancel; //incase it goes threw and a exception isn't thrown
    }
    catch (Exception)
    {
        return DialogResult.Cancel;
    }
}

注意:这不是一个大问题,只是我不热衷于使用try catch

标签: c#interfacecomcomexception

解决方案


推荐阅读