我有一个winforms应用程序,而Program.cs看起来像这样:
static void Main()
{
try
{
// Set up application
Application.Run();
}
catch (Exception ex)
{
// construct log from ex
log.Save(); // saves to db
}
}
这很好用,并且日志会根据需要保存到数据库中。但是,申请后来关闭。
有没有办法可以捕获异常并记录它们,然后继续运行应用程序?上面的代码只是一个示例 - 实际上,如果抛出异常,将会完成一些工作。
答案 0 :(得分:2)
查看AppDomain.FirstChanceException
事件。
但是,您可能真的想重新审视您的架构;一般来说,无法优雅地从任意Exception
中恢复。
答案 1 :(得分:-1)
您可以使用Application.ThreadException
事件。
在致电Application.Run
之前,请将代表挂钩到活动。
Application.ThreadException += (s, e) =>
{
// construct log
log.Save();
}