Freigeben über


Es funktioniert nicht! Suchen und Ausschließen von Laufzeitfehlern

Aktualisiert: November 2007

In dieser Lektion erfahren Sie, wie Sie das Programm debuggen und Laufzeitfehler beheben können.

Wie Sie bereits gelernt haben, treten Laufzeitfehler auf, wenn das Programm versucht, eine Operation auszuführen, die es nicht abschließen kann. Beim Auftreten eines Laufzeitfehlers hält das Programm an und zeigt eine Fehlermeldung an. Sie müssen den Fehler debuggen und beheben, bevor das Programm fortfahren kann.

Suchen und Beheben von Laufzeitfehlern

Die meisten Laufzeitfehler treten auf, wenn Ihnen im Code ein Fehler unterlaufen ist, beispielsweise haben Sie vergessen, einer Variablen einen Wert zuzuweisen, bevor Sie sie verwenden. Wenn bei der Ausführung des Programms ein Fehler entdeckt wird, hält das Programm an, und der Ausnahmen-Assistent wird im Code-Editor-Fenster angezeigt. In diesem Fall befindet sich das Programm im Unterbrechungsmodus, in dem das Debuggen durchgeführt wird.

Das Dialogfeld Ausnahmen-Assistent enthält eine Beschreibung des Fehlers sowie Hinweise zu den Fehlerursachen und zur möglichen Problembehandlung. Sie können auf die Tipps zur Problembehandlung klicken, um Hilfethemen mit weiteren Details anzuzeigen.

Sie müssen den Fehler beheben, bevor das Programm fortgesetzt werden kann. Dazu müssen Sie den Code überprüfen, um die Ursache des Fehlers zu finden. Wenn Sie beispielsweise vermuten, dass der Fehler darin liegt, dass einer Variablen bei noch aktiviertem Unterbrechungsmodus der falsche Wert zugewiesen wurde, können Sie mit IntelliSense den Wert der Variablen überprüfen. Wenn Sie im Code-Editor die Maus über die Variable bewegen, wird eine QuickInfo mit dem Wert der Variablen angezeigt. Wenn der Wert nicht den Erwartungen entspricht, prüfen Sie im vorhergehenden Code, wo der Wert festgelegt wurde, und ändern Sie den Code entsprechend. Anschließend können Sie den Vorgang fortsetzen.

Übung

So überprüfen Sie den Wert einer Variablen

  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 RunTimeErrors in das Feld Name ein, und klicken Sie dann auf OK.

    Ein neues Windows Forms-Projekt wird geöffnet.

  4. Doppelklicken Sie auf das Formular, um den Code-Editor zu öffnen.

  5. Fügen Sie im Form_Load-Ereignishandler folgenden Code hinzu:

    Dim miles As Integer = 0
    Dim hours As Integer = 0
    Dim speed As Integer = 0
    
    miles = 55
    speed = miles / hours
    MsgBox(CStr(speed) & " miles per hour")
    
  6. Drücken Sie F5, um das Programm auszuführen. Das Dialogfeld Ausnahmen-Assistent mit der Meldung "OverflowException wurde nicht behandelt" wird angezeigt.

    Eine punktierte Linie vom Dialogfeld zur Codedatei weist darauf hin, welche Codezeile den Fehler verursacht hat.

    Der erste Tipp zur Problembehandlung im Ausnahmen-Assistenten schlägt Ihnen vor zu überprüfen, ob eine Division durch 0 (null) vorliegt.

  7. Zeigen Sie mit dem Mauszeiger für einige Sekunden auf die Variable miles. Eine QuickInfo mit der Information "miles 55" wird angezeigt.

  8. Zeigen Sie jetzt mit dem Mauszeiger auf die Variable hours. Die QuickInfo lautet "hours 0".

    Da eine Division durch 0 (null) nicht möglich ist, der Wert von hours aber 0 (null) beträgt, haben Sie den Fehler gefunden: Der Wert von hours wurde nicht aktualisiert.

  9. Fügen Sie über der Zeile miles = 55 folgende Codezeile ein.

    hours = 2
    
  10. Klicken Sie auf den gelben Pfeil am linken Rand des Codes, und ziehen Sie ihn auf die Zeile hours = 2.

    Hierdurch fährt das Programm mit dieser Zeile fort und nicht mit der Zeile, die den Fehler enthält. Dies ist notwendig, um die zuvor neu hinzugefügte Codezeile auszuführen, damit die Behebung des Fehlers auch erkannt wird.

  11. Drücken Sie F5, um das Programm weiter auszuführen. Ein Dialogfeld mit der Meldung "28 miles per hour" wird angezeigt.

Nächste Schritte

In dieser Lektion haben Sie gelernt, wie Sie Laufzeitfehler finden und beheben. In der nächsten Lektion lernen Sie den dritten Typ von Programmierfehlern kennen: logische Fehler. Bevor Sie mit der Lektion zu den logischen Fehlern fortfahren, können Sie sich in der Lektion Genauere Betrachtung: Was wäre wenn... Testen von Code im Direktfenster detaillierter mit den erweiterten Techniken zum Debuggen beschäftigen.

Nächste Lektion: Was? Das sollte nicht passieren! Suchen von logischen Fehlern

Siehe auch

Aufgaben

Suchen und Beseitigen von Compilerfehlern

Erkennen von Fehlern: Drei Arten von Programmierfehlern

Suchen von Fehlern: Einführung in das Debuggen in Visual Basic