【问题标题】:If I have a catch exception will everything be caught, even with COM object?如果我有一个 catch 异常,所有东西都会被捕获,即使是 COM 对象?
【发布时间】:2014-10-15 02:49:17
【问题描述】:

我在生产中注意到我们的 IIS 应用程序死机(应用程序池关闭),当这种情况发生时,我在我们的应用程序使用的 COM 对象中看到一个错误。它很少发生,因此很难调试导致错误的原因。

我在 COM 代码周围放置了一个 try...catch(Exception e){} 块,我想知道这个随机 COM 对象是否没有被捕获。

这可能吗?换句话说,如果发生 COM 异常,它会被捕获吗?

【问题讨论】:

    标签: c# iis com


    【解决方案1】:

    是的,你会抓住它

    try
    {
        //code here
    }
    catch (System.Runtime.InteropServices.COMException COMex)
    {
        //you can try this too. Check this answer http://stackoverflow.com/questions/898726/why-would-this-catch-all-block-not-in-fact-catch-all
    }
    catch (Exception ex)
    {
       //do things
    }
    

    你可以查看Microsoft关于异常的文档,看看继承了System.Exception

    【讨论】:

    • 并非总是如此。 OP 很容易抛出 try catch 中未捕获的错误。
    • @paqogomez 显然如果他在某处抛出这个异常,代码应该在 try catch ...
    • 我对 OP 的理解是像this one 这样抛出内存错误的情况。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 2012-02-24
    • 1970-01-01
    • 2022-11-30
    • 2012-02-24
    相关资源
    最近更新 更多