代码之家  ›  专栏  ›  技术社区  ›  Shrike

.NET应用程序终止,但未进入AppDomain.UnhandledException

  •  3
  • Shrike  · 技术社区  · 15 年前

    我有一个应用程序,尽管存在 AppDomain.CurrentDomain.UnhandledException、Application.Current.DispatcherUnhandledException、TaskScheduler.UnobservedTaskException事件。

    这是一个包含许多P/Invoke互操作代码的WPF应用程序。 我已经为所有“最后手段”事件创建了“安全网”(见上文)。但是应用程序仍然失败,标准的Windows错误对话框缺少我的所有处理程序。

    .NET应用程序终止和避免AppDomain.CurrentDomain.UnhandledException的原因是什么?

    非托管线程中的异常可以是这样的原因吗?如果有,我能用它做什么?

    1 回复  |  直到 15 年前
        1
  •  1
  •   Hans Passant    15 年前

    当本机pinvoked代码本身不处理时,clr无法将未处理的异常处理神奇地注入到本机pinvoked代码中。尤其是任何一种硬件异常,比如clr不知道的线程中的accessviolation,都会在没有诊断的情况下终止应用程序。您需要与该代码的所有者或作者合作,以提高该代码的可靠性和可维护性。

    推荐文章