2010-07-29 203 views
2

我有一些调用COM自动化对象的方法的F#代码。有时该COM对象引发异常。F中捕获COM异常#

我试图包裹在一个尝试的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例外呢?

回答

1

嗯,我会认为这会工作......你是从STA(UI)线程调用?你有一个简单的repro情况分享(你有什么 - Visual Studio自动化或什么)?它闻起来几乎像调用正在编组到另一个后台线程,并且该线程有没有处理程序的异常。

0

对不起,我的错。

这是一个不同的COM调用导致的错误,毕竟,一个不同的处理器捕获错误。

因此,请尝试...做这项工作。