Exception 在F中捕获COM异常#

Exception 在F中捕获COM异常#,exception,com,f#,Exception,Com,F#,我有一些F#代码,用于调用COM自动化对象上的方法。有时,该COM对象会引发异常 我尝试将对COM对象的调用包装在try…with块中: try do some COM stuff with _ -> Printf.printf "got an exn\r\n" 尝试 做一些COM的东西 与u-> Printf.Printf“得到一个exn\r\n” 但是,根本不调用异常处理代码,应用程序就死了 我在控制台上看到的消息通常是: The message filter indic

我有一些F#代码,用于调用COM自动化对象上的方法。有时,该COM对象会引发异常

我尝试将对COM对象的调用包装在try…with块中:

try do some COM stuff with _ -> Printf.printf "got an exn\r\n" 尝试 做一些COM的东西 与u-> Printf.Printf“得到一个exn\r\n” 但是,根本不调用异常处理代码,应用程序就死了

我在控制台上看到的消息通常是:

The message filter indicated that the application is busy. (Exception from HRESULT: 0x8001010A (RPC_E_SERVERCALL_RETRYLATER)) 消息筛选器指示应用程序正忙。 (HRESULT的异常:0x8001010A(RPC_E_服务器调用_RETRYLATER))
如何捕获COM异常?

嗯,我认为这会起作用。。。您是从STA(UI)线程呼叫的吗?您是否有一个简单的复制案例可供分享(您在忙什么-Visual Studio automation还是什么)?闻起来好像调用被封送到另一个后台线程,该线程有一个没有处理程序的异常。

对不起,我的错误

导致错误的是另一个COM调用,毕竟,另一个with处理程序正在捕获错误

所以试着…用它来完成任务