için Çocuk Konuları İçinde İşlenmeyen Özel Durumları Yakalama Birkaç iş parçacığını dağıtan bir WPF uygulamasına sahibim. Ayrıntılı bir hata iletisi görüntüleyen App.xaml.cs dosyasında bir DispatcherUnhandledException olay işleyicisi tanımladım ve bu işleyici, UI iş parçacığının bir istisna her karşılaştığında çağrılır. Sorun çocuk konuları ile ilgilidir: işlenmemiş istisnalar asla ele alınmaz. Bunu nasıl yaparım?WPF
örnek kod:
private void Application_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
{
MessageBox.Show("detailed error message");
}
private void Application_Startup(object sender, StartupEventArgs e)
{
//...
//If an Exception is thrown here, it is handled
//...
Thread[] threads = new Thread[numThreads];
for(int i = 0; i < numThreads; i++)
{
threads[i] = new Thread(doWork);
threads[i].Start();
}
}
private void doWork()
{
//...
//Exception thrown here and is NOT handled
//...
}
Düzenleme: işlenmeyen bir özel durum meydana sonra, bir yığın izleme bir hata mesajı görüntülenir ve o zaman uygulamadan çıkmak istiyoruz.
http://msdn.microsoft.com/en-us/library/system.appdomain.unhandledexception.aspx adresine bakın, bunun neden yalnızca hatadan çıkmadan önce günlüğe kaydedileceğini okuyun. –
@Henk, zaten gönderdiğim bağlantıyı gösteriyor. Ancak haklısınız, istisna sadece kayıt amaçlı kullanılmalıdır. – Brandon
Brandon, Tamam, Bağlantınızı kontrol etmedim (-: Fakat her bir iş parçacığının kendi istisnalarını yerine getirmesi gerektiği sonucu çıkar. –