[英]How to log exceptions in Windows Forms Application
我读了很多关于异常捕获基数的错误,我不得不承认我也这样做了:
try{
...
}
catch (Exception exception){
MessageBox.Show(exception.Message, "Error!");
MyLogger.Log(exception.Message);
}
现在我想做对,并对此有一些疑问:
我有一件事要补充。 如果您只想在不影响程序流的情况下记录异常,则可以始终执行以下操作:
try
{
...
}
catch (Exception exception)
{
MyLogger.Log(exception.Message);
throw;
}
您可以在应用程序事件文件中为未处理的异常设置事件
(这里有一个VB样本,但我希望你明白这一点)
Private Sub MyApplication_UnhandledException(ByVal sender As Object, ByVal e As Microsoft.VisualBasic.ApplicationServices.UnhandledExceptionEventArgs) Handles Me.UnhandledException
End Sub
您可以在项目的选项中找到应用程序事件。
你应该只捕捉你可以做的事情,真的。
这是经验法则。 我通常在我的Program.Main
有一个try / catch,以防异常冒泡到顶部并需要记录。 您还可以处理CurrentDomain_UnhandledException
事件,以防在UI线程之外的其他线程中抛出异常(假设您是多线程)。
回答“4.还有其他建议吗?”:
在示例代码中,在记录异常之前会显示一个消息框。 我建议在显示消息之前记录异常,以防万一用户看到错误消息,恐慌,并在没有单击“确定”的情况下去度假。 这是一个小问题,但消息框无限期地阻止该程序,应谨慎使用!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.