C# 在.NET中处理未经处理的应用程序中止
我知道我甚至问这个问题都是在向一个皇家火焰敞开心扉,但我想我会看看StackOverflow是否有任何解决我所遇到问题的方法 我有一个C#应用程序在客户端站点出现故障,无法在本地复制。不幸的是,我很难(不可能)得到任何有助于找出问题根源的信息 我有一个相当广泛的错误监控框架,它在所有常见的地方监视未处理的异常:C# 在.NET中处理未经处理的应用程序中止,c#,unhandled-exception,C#,Unhandled Exception,我知道我甚至问这个问题都是在向一个皇家火焰敞开心扉,但我想我会看看StackOverflow是否有任何解决我所遇到问题的方法 我有一个C#应用程序在客户端站点出现故障,无法在本地复制。不幸的是,我很难(不可能)得到任何有助于找出问题根源的信息 我有一个相当广泛的错误监控框架,它在所有常见的地方监视未处理的异常: 我控制的线程中的Backstop异常处理程序 WinForms异常的Application.ThreadException AppDomain.CurrentDomain.Unhand
- 我控制的线程中的Backstop异常处理程序
- WinForms异常的Application.ThreadException
- AppDomain.CurrentDomain.UnhandledException
有什么想法吗?您可以尝试创建一个文件。这是一个C++ API,但是应该编写一个启动程序的小C++程序,它保持进程的句柄,等待进程句柄,然后在应用程序死亡时使用进程句柄创建一个MIIDUMP。
- 在应用程序上尝试捕获。运行
- 未处理的域异常
- 未处理的线程异常
- 在所有线程中尝试捕获处理程序
- 客户说哪些事件导致异常
- 您使用什么COM或第三方组件?(您是否正确地实例化和引用了这些组件?是否向COM函数调用传递了有效的参数?)
- 您是否使用任何非托管-非安全代码
- 您是否确定您的所有投球能力呼叫都覆盖了try-catch
这是个好问题。火焰主要指向通用的
try-catch-simoke-OK
code。优雅的关闭和错误报告是注册全局异常处理程序的完全可以接受的理由。有一组神奇的异常无法被托管代码捕获。(如StackOverflowException)。本代码:使用系统;类c{static void Main(){try{f();}catch(Exception ex){Console.WriteLine(ex);}}}static void f(){f();}}不会捕获堆栈溢出,但应用程序将终止。@StarBright-是的,这就是为什么您需要检查代码,或者最好让其他人检查代码的原因。