我们有一个 WPF 应用程序,其中:
private void SomeHandler(object sender, RoutedEventArgs e)
{
Task.Factory.StartNew(LoadItems).ContinueWith(t =>
{
//cache items to, for instance, db
}, TaskContinuationOptions.NotOnFaulted);
}
private void LoadItems()
{
//sometimes it throws an exception
//this is expected
throw new FormatException("blablabla");
}
所以,一般来说,当数据存在时,我们使用这个处理程序来尝试缓存数据。如果它不存在,那么我们会得到一个 Formatexception。我们不关心结果,只关心“一劳永逸”的策略。
我最近从客户端获得了两个日志文件,其中我看到 FormatException 已传播到 CurrentDomain_UnhandledException 处理程序。所有客户端都在带有 .Net 4.0 的 Windows XP 上。
所以问题是为什么会这样?是按照设计的吗?