/clr ile derlenen bir MFC uygulamasına sahibim ve aksi halde yakalanmamış yönetilen özel durumlar için bir son işleyiciyi uygulamaya çalışıyorum. Yerel istisnalar için CWinApp::ProcessWndProcException
'u geçersiz kılar.Karma yerel/yönetilebilir yürütülebilir dosyadaki son yönetilen özel durum işleyici?
Jeff'in CodeProject article, Application.ThreadException
ve AppDomain.CurrentDomain.UnhandledException
numaralı önerilerinde önerilen iki olay yükseltilmez.
Herkes, karma bir yürütülebilir dosya için son yönetilen bir özel durum işleyici sunmanın bir yolunu önerebilir mi?
Güncelleme: İsterseniz
Bu durum işleyicileri sadece aşağı olarak tetiklendiğini anlaşılmaktadır Application.Run
veya benzeri (. Bir çalışan iş parçacığı lezzet var, adını hatırlayamıyorum) gerçekten küresel yakalamak için yönetilen istisna bir SEH filtresi yüklemeniz gerekir. System.Exception
'u almayacaksınız ve eğer bir arama bekletmesi yapmak istiyorsanız, kendi yürüteçlerinizi yuvarlamanız gerekecek.
Bu konuyla ilgili bir MSDN forumu sorusunda, bir try ... catch (Exception^)
numaralı ana MFC iş parçacığının yeterince düşük düzeyli bir noktasını geçersiz kılması önerildi. Örneğin, CWinApp::Run
. Bu iyi bir çözüm olabilir, ancak herhangi bir perf veya stabilite sonucuna bakmadım. Kefalet etmeden önce bir çağrı yığını ile oturum açma şansınız olacak ve varsayılan pencereleri izinsiz istisna davranışından kaçınabilirsiniz.
Belki de bahsettiğiniz iki etkinlik tarafından yakalanmayan istisnalar hakkında daha fazla bilgi edinmemize yardımcı olabiliriz. – Charlie
Hiç yönetilen bir istisna - Sistem :: Özel Durumun herhangi bir mirasçısı. Yukarıdaki olayların amacı, herhangi bir/yönetilen istisna yapılmadığı zaman ateş etmektir. –