我正在开发一个WPF .net 3.5应用程序,它正在使用公司内部创建的其他模块/库。并非所有这些都支持日志记录,有时候有关处理异常的信息可能对查找错误信息非常有用。 所以问题是我是否能以某种方式获得其他模块中处理事件的任何通知或连接?
感谢。
答案 0 :(得分:5)
在4.0及以上版本中,有一个解决方案:
事件AppDomain.FirstChanceException
在执行任何catch块之前触发。
这个MSDN article有一些例子。
基本上你只需添加一个这样的事件处理程序:
AppDomain.CurrentDomain.FirstChanceException +=
(object source, FirstChanceExceptionEventArgs e) =>
{
Console.WriteLine("FirstChanceException event raised in {0}: {1}",
AppDomain.CurrentDomain.FriendlyName, e.Exception.Message);
};
答案 1 :(得分:2)
有两个事件,Application.DispatcherUnhandledException
和AppDomain.CurrentDomain.UnhandledException
,可能会对您有所帮助。否则,我认为,你运气不好,特别是如果模块自己处理异常。唯一的办法是附加一个调试器,因为First-Chance异常显示在那里。