Laden...

Windows Forms - Exception Handler (MessageBox Ersatz)

Erstellt von Joetempes vor 15 Jahren Letzter Beitrag vor 14 Jahren 10.450 Views
Joetempes Themenstarter:in
888 Beiträge seit 2007
vor 15 Jahren
Windows Forms - Exception Handler (MessageBox Ersatz)

Hallo,

ich habe einen kleinen Exception-Handler mit nützlichen Funktionen für Windows Forms (.NET 2.0) geschrieben. Bei mir ersetzt er jetzt die Message-Box.

Im angehängten Archive findet Ihr eine VS-2008 Solution, Projekttyp ist Klassenbibliothek.

NameSpace lautet: ExceptionHandler.
Aufgerufen wird das ganze dann so:


try
{
     Convert.ToInt32("x");
}
catch(Exception ex)
{
     ExHandler.OpenErrorDialog("Falsches Format.", ex);
     //oder
     ExHandler.OpenErrorDialog(ex);
}

Viel Spaß damit.

Edit:
Nach 57 Downloads gibts eine neue Version:

  • Inner Exceptions werden behandelt
  • Der Dialog schließt sich über einen Timer nach 60 Sek.
Joetempes Themenstarter:in
888 Beiträge seit 2007
vor 15 Jahren
1.820 Beiträge seit 2005
vor 15 Jahren

Hallo!

Sehr interessante Erweiterung, auch das mit dem Screenshot.

Nobody is perfect. I'm sad, i'm not nobody 🙁

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo Joetempes,

sieht nicht schlecht aus. Praktisch wäre noch eine Überladung ExHandler.OpenErrorDialog(String msg, Exception ex), die sich Message und den StrackTrace direkt aus der Exception holt. Oder sogar nur ExHandler.OpenErrorDialog(Exception ex), denn oft wird die Exception schon eine angemessene Meldung enthalten, so dass man keine zusätzliche Message braucht.

Und wenn man dann sowieso schon die Exception übergibt, könntest du auch eine Behandlung der InnerException einbauen. 🙂 Wenn eine InnerException vorhanden ist, könnte in der Form ein Button "Details" oder "Weitere Informationen" oder "Fehlerursache" oder wie immer du ihn nennen willst angezeigt werden, der dann im selben Fenster die Daten der InnerException anzeigt. Natürlich muss man berücksichtigen, dass es eine ganze Kette von InnerExceptions geben kann und man muss natürlich auch einen Button haben, mit dem man wieder zur eigentlichen Exception zurückwechseln kann.

herbivore

Joetempes Themenstarter:in
888 Beiträge seit 2007
vor 15 Jahren

Hallo Herbivore,

ok ich werde das gesamte Exception-Objekt übergeben, das macht Sinn,
das mit der InnerException ist eine Überlegung Wert. Das schau ich mir mal an.

Update folgt.

B
81 Beiträge seit 2008
vor 15 Jahren

Super, sowas suche ich seit 2 Tagen xD

Joetempes Themenstarter:in
888 Beiträge seit 2007
vor 15 Jahren

Neue Version hinzugefügt.

  • Es gibt jetzt zwei Überladungen der OpenErrorDialog-Methode (Siehe Aufruf Beispiel).
J
1.114 Beiträge seit 2007
vor 15 Jahren

Nette Sache... Nur noch so als Tipp.. Wenn man einen globalen Exception Handler definiert, kann man den Dialog direkt ohne Umweg bei einer Exception nutzen:

Application.ThreadException += new ThreadExceptionEventHandler(UnhandledException);

private void UnhandledException(object sender, ThreadExceptionEventArgs e)
{
    ExHandler.OpenErrorDialog(e.Exception);

}
95 Beiträge seit 2008
vor 15 Jahren

Is net schlecht die erweiterung!!!!

Liebe Grüße
Daniel Hahn (Giggeler)
www.giggeler-it.de

C
489 Beiträge seit 2007
vor 15 Jahren

Hallo

Sehr nützlich. Da es hier steht, kann man es frei verwenden?

chrische

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo chrische5,

da bzw. solange nichts anderes angegeben ist, gilt Lizenzbedingungen für .NET-Komponenten und C#-Snippets auf myCSharp.de.

herbivore

Joetempes Themenstarter:in
888 Beiträge seit 2007
vor 15 Jahren

Hallo

Da es hier steht, kann man es frei verwenden?

chrische

Ja,logisch. Alles was ich hier poste ist auch für Euch,
Ihr könnt damit tun und lassen was Ihr wollt!

Joetempes Themenstarter:in
888 Beiträge seit 2007
vor 15 Jahren

Neue Version hinzugefügt. Alle Infos steht im Start-Post.

Joetempes Themenstarter:in
888 Beiträge seit 2007
vor 14 Jahren

Hab was wesentlich besseres gefunden:

http://exceptionreporter.codeplex.com/