【发布时间】:2014-10-15 02:49:17
【问题描述】:
我在生产中注意到我们的 IIS 应用程序死机(应用程序池关闭),当这种情况发生时,我在我们的应用程序使用的 COM 对象中看到一个错误。它很少发生,因此很难调试导致错误的原因。
我在 COM 代码周围放置了一个 try...catch(Exception e){} 块,我想知道这个随机 COM 对象是否没有被捕获。
这可能吗?换句话说,如果发生 COM 异常,它会被捕获吗?
【问题讨论】:
我在生产中注意到我们的 IIS 应用程序死机(应用程序池关闭),当这种情况发生时,我在我们的应用程序使用的 COM 对象中看到一个错误。它很少发生,因此很难调试导致错误的原因。
我在 COM 代码周围放置了一个 try...catch(Exception e){} 块,我想知道这个随机 COM 对象是否没有被捕获。
这可能吗?换句话说,如果发生 COM 异常,它会被捕获吗?
【问题讨论】:
是的,你会抓住它
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
【讨论】: