Vorgehensweise bei Problemen: Behandeln von Fehlern

Aktualisiert: November 2007

In dieser Lektion lernen Sie, wie Sie einfachen Fehlerbehandlungscode für Programme erstellen.

Auch in den am besten durchdachten Programmen treten manchmal Fehler auf. Einige Fehler sind Codefehler, die gefunden und behoben werden können. Andere Fehler sind die logische Konsequenz des Programms. Beispielsweise kann das Programm versuchen, eine Datei zu öffnen, die bereits geöffnet ist. In Fällen wie diesen können Fehler vorhergesagt, aber nicht verhindert werden. Als Programmierer ist es Ihre Aufgabe, diese Fehler vorherzusehen und dem Programm bei deren Behandlung zu helfen.

Laufzeitfehler

Ein Fehler, der während der Ausführung eines Programm auftritt, wird als Laufzeitfehler bezeichnet. Ein Laufzeitfehler tritt auf, wenn ein Programm versucht, eine Aktion auszuführen, für die es nicht konzipiert wurde. Wenn ein Programm beispielweise versucht, eine nicht zulässige Operation auszuführen, z. B. das Konvertieren einer nicht numerischen Zeichenfolge in einen numerischen Wert, kommt es zu einem Laufzeitfehler.

Wenn ein Laufzeitfehler auftritt, wird vom Programm eine Ausnahme ausgelöst, die nach Code innerhalb des Programms sucht, mit dem dieser Fehler behandelt werden kann. Wenn kein solcher Code gefunden werden kann, wird das Programm angehalten und muss neu gestartet werden. Da dies zum Datenverlust führen kann, ist es ratsam, für alle voraussehbaren Fehler einen Fehlerbehandlungscode zu erstellen.

Der Try...Catch...Finally-Block

Mithilfe des Try...Catch...Finally-Blocks können Sie Laufzeitfehler im Code behandeln. Sie führen für ein Codesegment den Try-Block aus. Wenn durch diesen Code eine Ausnahme ausgelöst wird, springt diese zum Catch-Block und führt dann den Code im Catch-Block aus. Nachdem dieser Code abgeschlossen wurde, wird der Code im Finally-Block ausgeführt. Der gesamte Try...Catch...Finally-Block wird durch eine End Try-Anweisung abgeschlossen. Das folgende Beispiel demonstriert die Verwendung der einzelnen Blöcke.

Try
  ' Code here attempts to do something.
Catch
  ' If an error occurs, code here will run.
Finally
  ' Code in this block will always run.
End Try

Zuerst wird der Code im Try-Block ausgeführt. Wenn kein Fehler auftritt, lässt das Programm den Catch-Block aus und führt den Code im Finally-Block aus. Tritt im Try-Block ein Fehler auf, springt die Ausführung sofort zum Catch-Block und führt den Code in diesem Block aus. Anschließend wird der Code im Finally-Block ausgeführt.

Übung

So verwenden Sie den Try...Catch-Block

  1. Wählen Sie im Menü Datei den Befehl Neues Projekt aus.

  2. Klicken Sie im Dialogfeld Neues Projekt im Bereich Vorlagen auf Windows-Anwendung.

  3. Geben Sie TryCatch in das Feld Name ein, und klicken Sie dann auf OK.

    Ein neues Windows Forms-Projekt wird geöffnet.

  4. Ziehen Sie ein TextBox-Steuerelement und ein Button-Steuerelement aus der Toolbox auf das Formular.

  5. Doppelklicken Sie auf die Schaltfläche, um den Code-Editor zu öffnen.

  6. Geben Sie im Button1_Click-Ereignishandler folgenden Code ein:

    Try
      Dim aNumber As Double = CDbl(Textbox1.Text)
      MsgBox("You entered the number " & aNumber)
    Catch
      MsgBox("Please enter a number.")
    Finally
      MsgBox("Why not try it again?")
    End Try
    
  7. Drücken Sie F5, um das Programm auszuführen.

  8. Geben Sie in das Textfeld einen numerischen Wert ein, und klicken Sie auf die Schaltfläche. Ein Meldungsfeld zeigt die von Ihnen eingegebene Nummer gefolgt von einer Aufforderung zu einem weiteren Versuch an.

  9. Geben Sie als Nächstes einen nicht numerischen Wert in das Textfeld ein, z. B. ein Wort, und klicken Sie auf die Schaltfläche. Wenn das Programm dieses Mal versucht, den Text im Textfeld in eine Zahl zu konvertieren, wird ein Fehler ausgelöst. Anstatt den Code im Try-Block zu beenden, wird der Catch-Block ausgeführt, und es wird ein Meldungsfeld angezeigt, das zur Eingabe einer Zahl auffordert. Anschließend wird der Finally-Block ausgeführt, der Sie zu einem erneuten Versuch auffordert.

Nächste Schritte

In dieser Lektion haben Sie gelernt, wie Sie mithilfe der Try...Catch...Finally-Blöcke eine einfache Fehlerbehandlungsstruktur erstellen. Mit dieser Lektion endet die Einführung in die Programmiersprache Visual Basic. In den nächsten Lektionen erfahren Sie, wie Sie die Benutzeroberfläche für das Programm erstellen.

Nächste Lektion: Erstellen der visuellen Darstellung eines Programms: Einführung in Windows Forms

Siehe auch

Aufgaben

Festlegen von zwei Wahlmöglichkeiten im Programm: Die If...Then-Anweisung

Erkennen von Fehlern: Drei Arten von Programmierfehlern

Referenz

Try...Catch...Finally-Anweisung (Visual Basic)

Weitere Ressourcen

Strukturierte Ausnahmebehandlung in Visual Basic