我們有一個WPF應用程序,其中:TPL在Windows XP
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。
所以問題是爲什麼這樣呢?是否按設計?
軸承:) – shambulator
這是一個有趣的突破性變化...感謝您解釋 –
還有一個有趣的觀察,因爲在終結器中引發異常,即使安裝了UnhandledException處理程序,應用程序也會終止。這是我在我的應用程序的日誌中看到的。 –