Uniwersalne łapanie wyjątków
Witam.
Chciałbym w swoim programie (C#) zastosować jakiś mechanizm, który pozwoli mi w prosty sposób wyłapywać wyjątki z dowolnego miejsca w aplikacji.
Program składa się z paru klas - głównie okien. Wszystkie okna są inicjalizowane za pomocą MainForm pośrednio lub nie. Inicjalizacja programu wygląda w skrócie tak:
[code]static void Main(string[] args)
{
try
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}
catch(Exception e)
{
/*tutaj jakiś komunikat o błędzie - cokolwiek, byleby program brutalnie się nie wykrzaczał z niezrozumiałym komunikatem*/
}
}[/code]
Pokazane wyżej rozwiązanie oczywiście nie działa, ponieważ wyłapuje wyjątki tylko wtedy, kiedy "przechodzą" one przez konstruktor MainForm (czyli nie działa np. kiedy kliknę w źle oprogramowany button w innej formie). Czy ma ktoś jakiś pomysł? Zależy mi na tym, aby uniknąć wstawiania try...catch do każdej metody (bo w samej MainForm mam ich ok 60, a podobnych klas jest prawie 20).
Dzięki za wszystkie wskazówki i pozdrawiam
Odpowiedzi: 1
Rozwiązaniem okazał się event Application.ThreadException - wywoływany zawsze, gdy pojawi się nieobsłużony wyjątek.
Strona 1 / 1