gpt4 book ai didi

c# - 如何捕获互操作异常?

转载 作者:行者123 更新时间:2023-12-03 03:08:31 25 4
gpt4 key购买 nike

我正在 try catch C# 代码中的互操作异常

IEngine engine = null;

try
{
engine = engineLoader.GetEngineObject(AbbyySdkSerialNumber);
}
catch(System.Runtime.InteropServices.COMException ex)
{
int i = 0;
}

但它不想跳到catch block 。有任何想法吗?预先感谢您!

最佳答案

CLR 自动将 COM 互操作中的 HRESULT 映射到更具体的托管异常,映射到 COMException。例如,E_ACCESSDENIED 变为 UnauthorizedAccessExceptionE_OUTOFMEMORY 变为 OutOfMemoryException,依此类推。

如果 HRESULT 是自定义结果或者 CLR 未知,则运行时会将通用 COMException 传递给客户端。 COMExceptionErrorCode 属性包含 HRESULT 值。

有关 COM 互操作的完整讨论,请参阅 Advanced COM Interoperability .

请注意,如果您在 VS 调试器下运行此程序,则默认情况下执行将在导致异常的行处停止。除非您跳到下一行,否则它不会跳转到 catch block 。

关于c# - 如何捕获互操作异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15552036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com