【问题标题】:Trapping COM exception in F#在 F# 中捕获 COM 异常
【发布时间】:2010-07-29 14:07:16
【问题描述】:

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

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

尝试 做一些 COM 的东西 与_-> Printf.printf "得到一个 exn\r\n"

但是根本没有调用异常处理代码,应用程序就死掉了。

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

消息过滤器指示应用程序正忙。 (来自 HRESULT 的异常:0x8001010A (RPC_E_SERVERCALL_RETRYLATER))

如何捕获 COM 异常?

【问题讨论】:

    标签: exception com f#


    【解决方案1】:

    嗯,我认为这会起作用...您是从 STA (UI) 线程调用的吗?您是否有一个简单的重现案例要分享(您在做什么 - Visual Studio 自动化或什么)?闻起来几乎就像调用正在编组到另一个后台线程,并且该线程有没有处理程序的异常。

    【讨论】:

      【解决方案2】:

      对不起,我错了。

      导致错误的是不同的 COM 调用,毕竟是不同的 with-handler 捕获了错误。

      所以 try...with 就可以了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-03
        • 2012-07-10
        • 1970-01-01
        • 2011-05-29
        • 2011-07-02
        相关资源
        最近更新 更多