C# 捕获winforms中的异常而不停止应用程序
我有一个winforms应用程序,Program.cs看起来像这样:C# 捕获winforms中的异常而不停止应用程序,c#,winforms,exception-handling,C#,Winforms,Exception Handling,我有一个winforms应用程序,Program.cs看起来像这样: static void Main() { try { // Set up application Application.Run(); } catch (Exception ex) { // construct log from ex log.Save(); // saves to db } } 这工作正常,
static void Main()
{
try
{
// Set up application
Application.Run();
}
catch (Exception ex)
{
// construct log from ex
log.Save(); // saves to db
}
}
这工作正常,并且正在根据需要将日志保存到数据库中。但是,应用程序随后关闭
是否有一种方法可以捕获异常并记录它们,然后继续运行应用程序?上面的代码只是一个示例-实际上,如果抛出异常,将完成一些工作。查看事件
然而,您可能真的想重新审视您的体系结构;通常,您无法从任意
异常中正常恢复,,您可以使用应用程序.ThreadException
事件
在调用应用程序之前,运行,将委托挂接到事件
Application.ThreadException += (s, e) =>
{
// construct log
log.Save();
}
如果没有具体的代码问题向我们展示您在示例中遇到的问题,那么这一问题的可能重复性就太大了。答案显然是,“当然有办法!”但这已经是最好的了。可能的重复不会很好。只有在使用调试器运行时才能捕获任何内容。当您不应该这样做时,因为这使得调试异常非常困难。您需要删除此代码。当抛出异常的代码没有处理异常时,停止假设您可以处理异常。例外是你的朋友,他们告诉你做错了什么。永远不要忽视好的建议。