【问题标题】:How do I log an exception when I don't know where it might throw?当我不知道它可能会抛出哪里时,如何记录异常?
【发布时间】:2011-04-08 02:48:06
【问题描述】:

我们有一个已部署给客户的 WPF 应用程序。但是,该应用程序随机致命地崩溃,并在客户的计算机上显示“意外错误”对话框。我们需要能够看到异常消息,最好也能看到堆栈跟踪,但是因为它是随机崩溃的,所以我们不知道应该将 try/catch 检查放在哪里以便我们可以记录它。我们使用 NLog 进行日志记录。我的问题是,我们有什么方法可以配置 NLog 以捕获所有未由我们的代码处理的异常,或者其他方法?

【问题讨论】:

标签: c# wpf exception logging exception-handling


【解决方案1】:

为什么不放置一个覆盖整个代码的全局 try/catch 块?

由于它是一个 WPF 应用程序,因此可能需要进行一些更改。不要让 WPF 自动打开主窗口,而是删除 App.xaml 文件,然后通过代码从应用程序起点(在 try/catch 中)打开窗口。

请注意,这不是一个好的做法(就像捕获所有异常通常不好),但可能是查找崩溃发生位置的临时解决方法。


编辑:我还邀请您阅读an answer to a related question,了解 WPF 中的全局 try/catch 块。写答案时,我不知道一些有用的东西。

【讨论】:

  • 其实,捕捉所有异常很好,只要你不忽略它们。您需要一个顶级 try/catch 块,在关闭之前记录致命异常。
猜你喜欢
  • 2013-03-17
  • 1970-01-01
  • 2021-09-03
  • 2013-02-08
  • 1970-01-01
  • 2014-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多