Anzeige der Ausnahme bei der try-catch-Klausel

8

Bisher habe ich, wann immer ich eine aus meinem Code geworfene Ausnahme zeigen wollte:

%Vor%

Ich habe den obigen Code hauptsächlich für Debugging-Gründe verwendet, um den genauen Typ der Ausnahme und den Grund dafür zu sehen, warum die Ausnahme ausgelöst wurde.

In einem Projekt, das ich gerade erstelle, verwende ich mehrere try-catch -Klauseln und möchte im Falle einer Ausnahme eine Popup-Nachricht anzeigen, um sie "benutzerfreundlicher" zu machen. Mit "benutzerfreundlich" meine ich eine Nachricht, die Sätze wie Null-Referenz-Ausnahme oder Nicht-Bereichs-Ausnahme , die aktuell mit dem obigen Code angezeigt werden, ausblenden würde.

>

Ich möchte jedoch weiterhin relevante Informationen mit dem Typ der Ausnahme anzeigen, die die Nachricht erstellt hat.

Gibt es eine Möglichkeit, die angezeigte Ausgabe von geworfenen Ausnahmen entsprechend den vorherigen Anforderungen zu formatieren?

    
apomene 22.04.2013, 10:55
quelle

5 Antworten

8

Sie können .Message verwenden, aber ich würde nicht empfehlen, Exception direkt abzufangen. Versuchen Sie, mehrere Ausnahmen abzufangen, oder geben Sie explizit die Ausnahme an, und passen Sie die Fehlermeldung an den Typ "Ausnahme" an.

%Vor%

Catching Exception ist ziemlich generisch und kann als schlechte Übung angesehen werden, da es möglicherweise Fehler in Ihrer Anwendung versteckt.

Sie können den Ausnahmetyp auch überprüfen und entsprechend behandeln, indem Sie den Ausnahmetyp prüfen:

%Vor%

Dies würde dem Benutzer ein Meldungsfeld anzeigen, wenn die Ausnahme ein ArgumentOutOfRange oder eine FormatException ist, andernfalls wird die Ausnahme erneut ausgelöst (und der ursprüngliche Stack-Trace beibehalten).

    
Darren Davies 22.04.2013, 11:00
quelle
3

Exception.Message liefert eine mehr (aber nicht vollständig) benutzerfreundliche Nachricht als Exception.ToString() . Betrachten Sie dieses erfundene Beispiel:

%Vor%

Obwohl Message eine einfachere Nachricht als ToString() ergibt, bedeutet die angezeigte Nachricht für den Benutzer immer noch nicht viel. Es braucht nicht viel Mühe, Ausnahmen manuell zu verschlucken und dem Benutzer eine benutzerdefinierte Nachricht anzuzeigen, die ihm bei der Behebung dieses Problems hilft.

%Vor%

Sie können sogar Debug.Print verwenden, um Text für Debug-Zwecke in das unmittelbare Fenster oder Ausgabefenster (abhängig von Ihren VS-Voreinstellungen) auszugeben.

    
User 12345678 22.04.2013 10:56
quelle
2

Sie können die Eigenschaft Exception.Message verwenden, um eine Nachricht zu erhalten, die beschreibt die aktuelle Ausnahme.

%Vor%     
Arshad 22.04.2013 10:57
quelle
2
%Vor%

Verwenden Sie den obigen Code.

Kann benutzerdefinierte Fehlermeldung auch wie folgt anzeigen:

%Vor%

Zusätzlich:

Für den Unterschied zwischen ex.toString () und ex.Message folgen Sie:

Exception.Message und Exception.ToString ()

Alle Details mit Beispiel:

Ссылка

    
Freelancer 22.04.2013 10:57
quelle
2

probiere diesen Code:

%Vor%     
nassimlouchani 12.04.2014 22:27
quelle

Tags und Links