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?
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.
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).
Exception.Message
liefert eine mehr (aber nicht vollständig) benutzerfreundliche Nachricht als Exception.ToString()
. Betrachten Sie dieses erfundene Beispiel:
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.
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.
Sie können die Eigenschaft Exception.Message verwenden, um eine Nachricht zu erhalten, die beschreibt die aktuelle Ausnahme.
%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: