c# - 有什么方法可以防止 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
解决方案
推荐阅读
- python - 在 pytest 中为多个测试运行相同的进程
- r - 使用 R,是否有更好的方法来收集具有多个记录系列的每个人的记录开始和结束天数
- flutter - 在堆栈和列中包装定位小部件时出现颤振错误(无限像素溢出的 RenderFlex。)
- java - 从一个特定元素中查找所有值
- ios - 如何修复 Xcode 中不等的标签大小?
- windows - 如何更改文件夹中的所有文件夹图标 windows 10
- eclipse - 在 Eclipse 中处理草图未按预期工作
- objective-c - Core Data + CloudKit 迁移:无法在生产模式中的记录 [...] 中创建或修改字段 [...]
- python - SymPy solve():UnboundLocalError:分配前引用的局部变量“solved_syms”
- javascript - Feathersjs TypeError:app.publish 不是函数