c# - 我可以在 C# 中创建一个全局异常处理程序,让代码在之后继续运行吗?

标签 c# .net exception-handling

在 .NET 中,默认的异常处理程序会让用户继续运行程序。但是,我想要一个全局异常处理程序,将堆栈跟踪保存到“errorlog.txt”文件中,以便用户可以将其发送给我,而不必记住单击“详细信息”并将其复制出对话框(并删除所有关于加载程序集等无用的废话)。但是当我这样做时,代码不知道如何继续,所以我所能做的就是退出应用程序。有什么办法可以两全其美吗? (是的,我知道我要求的本质上是带有日志记录的“On Error Resume Next”,但我真的认为它会很有用!)

最佳答案

AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);

如果您在应用程序启动时将自己绑定(bind)到此事件,您应该能够捕获应用程序抛出的任何未处理的异常,并将其保存到文件中。 (使用 UnhandledExceptionEventArgsException 对象部分。我认为不可能从发生错误的地方恢复。

关于c# - 我可以在 C# 中创建一个全局异常处理程序,让代码在之后继续运行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18984463/

相关文章:

java - IDE 强制用 try/catch 包围而不抛出异常

python - 最好 'try' 一些东西并捕获异常或测试是否可以首先避免异常?

c# - 设置全局代理设置后无法刷新窗口

c# - OpenXML SDK - 将 C# 转换为 C++/CLI

c# - Silverlight 元素绑定(bind)不起作用

asp.net - 是创建一个标签并从代码隐藏更新其文本更好,还是创建多个标签并根据需要显示/隐藏标签更好?

c# - 推荐XNA教程开始学习3D(第一次)

c# - 使用数组或泛型时 TestCase 在 NUnit 中的显示名称

.net - Control.ResolveUrl 与 Control.ResolveClientUrl 与 VirtualPathUtility.ToAbsolute

Xcode 捕获所有未捕获的异常