5 Stimmen

Wie erkenne ich mögliche Ausnahmen beim Verwenden von try catch?

Laut MSDN ist es eine schlechte Praxis, Ausnahmen ohne einen spezifischen Typ zu erfassen und beispielsweise System.Net.Exception zu verwenden.

Muss ich mich jedes Mal in das Handbuch von msdn vertiefen, um die möglichen Ausnahmetypen zu sehen, wenn ich einen Fehler abfangen möchte? Oder gibt es eine Möglichkeit im IDE, dies schnell zu sehen.

Derzeit verwende ich Visual Studio 2013 Express Edition

 try
 {
    using (WebClient goog = new WebClient()) 
    {
       goog.DownloadString("http://google.com");
    } 
 }
 catch(Exception E)
 {
    saveLog("Methodenname", E.Message);
 }

EDIT : In diesem Link scheint es, dass VS bereits eine Option hat, um Ausnahmen anzuzeigen. Jedoch, wenn ich eine Methode auswähle, zeigt es nur den Typ und die Parameter der Methode an. Aber es zeigt keine Ausnahmen.

2voto

Falanwe Punkte 4516

Im Gegensatz zu Java muss C# Ihre potenziellen Ausnahmen nicht in der Signatur Ihrer Methoden auflisten. Das hat einige gute Seiten und einige schlechte Seiten. Sie sind gerade auf einer der schlechten Seiten gestoßen.

Sie können nicht wissen, welche Ausnahme ausgelöst werden könnte, es sei denn,

  • Die Methode, die Sie aufrufen, ist gut dokumentiert mit ihren potenziellen Ausnahmen aufgelistet (best case)
  • Sie kennen die spezifischen Fehlerfälle, führen sie aus und sehen, welche Ausnahmen sie verursachen (schlechter Fall)
  • Sie haben keine Ahnung, was schief gehen könnte, und protokollieren alles, ändern Ihr Catch jedes Mal, wenn etwas Unerwartetes passiert (schlechtester Fall)

2voto

Tom Lint Punkte 463

Die beste Praxis besteht in der Regel darin, nur Handhabungen für Ausnahmen hinzuzufügen, von denen Sie erwarten, dass sie während der Laufzeit Ihres Programms auftreten.

Wenn Sie beispielsweise mit Dateien arbeiten, macht es Sinn, die ***NotFoundException-Typen zu behandeln. Durch ordnungsgemäßes Codieren wird sichergestellt, dass Dinge wie ArgumentNullException nicht auftreten, sodass diese nicht behandelt werden müssen usw.

0voto

keyboardP Punkte 67673

Es gibt keine integrierte Funktion, um dies automatisch anzuzeigen, aber Sie platzieren das Einfügemarke irgendwo im Methodennamen und drücken STRG und Leertaste. Die hier angezeigten Informationen entsprechen denen in Ihrem Link, daher sollten für die Methode DownloadString zwei Ausnahmen angezeigt werden.

Wenn Sie den Mauszeiger über DownloadString halten, wird Ihnen nicht unbedingt dieselbe Information angezeigt wie beim Klicken auf den Methodennamen und Drücken von STRG und Leertaste (Letzteres zeigt Ihnen die Ausnahmen, die von der Methode ausgelöst werden).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X