在 .NET 中,默认的异常处理程序会让用户继续运行程序。但是,我想要一个全局异常处理程序,将堆栈跟踪保存到“errorlog.txt”文件中,以便用户可以将其发送给我,而不必记住单击“详细信息”并将其复制出对话框(并删除所有关于加载程序集等无用的废话)。但是当我这样做时,代码不知道如何继续,所以我所能做的就是退出应用程序。有什么办法可以两全其美吗? (是的,我知道我要求的本质上是带有日志记录的“On Error Resume Next”,但我真的认为它会很有用!)
最佳答案
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
如果您在应用程序启动时将自己绑定(bind)到此事件,您应该能够捕获应用程序抛出的任何未处理的异常,并将其保存到文件中。 (使用 UnhandledExceptionEventArgs
的 Exception
对象部分。我认为不可能从发生错误的地方恢复。
关于c# - 我可以在 C# 中创建一个全局异常处理程序,让代码在之后继续运行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18984463/