我有一些F#代码调用COM Automation对象上的方法。有时,COM对象会抛出异常。
我尝试用try:
包装对COM对象的调用try do some COM stuff with _ -> Printf.printf "got an exn\r\n"
但是根本没有调用异常处理代码,应用程序就死了。
我在控制台上看到的消息通常是:
The message filter indicated that the application is busy. (Exception from HRESULT: 0x8001010A (RPC_E_SERVERCALL_RETRYLATER))
如何捕获COM异常?
答案 0 :(得分:1)
嗯,我认为这样可行......你是从STA(UI)线程调用的吗?你有一个简单的repro案例要分享(你在做什么 - Visual Studio自动化或什么)?它的味道几乎就像调用正在编组到另一个后台线程,并且该线程具有没有处理程序的异常。
答案 1 :(得分:0)
抱歉,我的错误。
这是一个导致错误的不同COM调用,毕竟不同的with-handler正在捕获错误。
所以尝试......完成工作。