在.NET excel addins(XLL)中捕获未处理的异常?

Pra*_*eep 6 c# excel exception-handling

我试图为.NET excel插件附加一个未处理的异常处理程序.问题是永远不会调用异常处理程序.

AppDomain.CurrentDomain.UnhandledException不起作用 - 永远不会触发事件.

无法使用Application.Current.DispatcherUnhandledException,因为Excel在excel插件代码中为null.

你怎么连接未处理的异常处理程序呢?

jus*_*ase 4

您可能无法这样做,因为该应用程序实际上是一个非托管应用程序。您可能必须在片状区域周围放置 try/catch 块。

  • 正确的。由于 Excel 是调用者,因此由 Excel 来处理异常。如果 Excel 处理了它,则不存在未处理的异常。如果 Excel 无法处理它,Excel 就会崩溃。就是这么简单。无论哪种方式,托管代码执行都会在 COM 互操作屏障处结束。关键并不在于包围所有“片状区域”,而是在 Excel 调用代码的所有入口点周围使用错误处理。 (4认同)