3.2 Syntaxfehler und IntelliSense
Syntaxfehler treten zur Entwicklungszeit des Programms auf und haben ihre Ursache in falsch oder unvollständig geschriebenem Programmcode. Bereits beim Schreiben des Codes werden Sie von Visual Basic auf Syntaxfehler aufmerksam gemacht. Ein nicht korrekt geschriebenes Schlüsselwort, ein Block If ohne End If oder andere Fehler werden sofort erkannt und markiert.
Sie als Programmierer erhalten eine Warnmeldung, häufig wird eine Information mit Hilfestellung zur Fehlerkorrektur angeboten. Manchmal wird die Fehlerkorrektur sogar schon automatisch ausgeführt. Wird der Fehler nicht behoben, so wird eine Übersetzung und Ausführung des Programms abgelehnt.
Die Entwicklerunterstützung IntelliSense trägt in hohem Maße dazu bei, solche Syntaxfehler erst gar nicht auftreten zu lassen. Während des Schreibens einer Anweisung werden zahlreiche Hilfestellungen angeboten.
Einige Beispiele:
- Sobald Sie den Punkt hinter den Namen eines Objekts, z. B. eines Steuerelements, gesetzt haben, erscheinen die Eigenschaften und Methoden dieses Elements zur Auswahl. Das ausgewählte Listenelement wird in den Code eingefügt, wenn Sie die -Taste betätigen.
- Beginnen Sie, einen beliebigen Namen zu schreiben, so wird sofort eine Hilfsliste mit Anweisungen oder Objekten angeboten, die im Zusammenhang mit der aktuellen Anwendung stehen und die gleichen Anfangsbuchstaben haben.
- Zu dem aktuell verwendeten Programmierelement (Klasse, Objekt, Eigenschaft, Methode usw.) wird ein QuickInfo eingeblendet, das Sie als Entwickler über die Einsatzmöglichkeiten des jeweiligen Elements informiert.
- Sobald Sie den Cursor auf eine öffnende Klammer setzen, wird sie zusammen mit der zugehörigen schließenden Klammer hervorgehoben und umgekehrt.
- Das Gleiche gilt für Kontrollstrukturen: falls Sie den Cursor z. B. auf ein Else setzen, dann werden alle Bestandteile der betreffenden Verzweigung (If, Then, Else, End If) hervorgehoben.
- Wird der Cursor auf ein Objekt oder eine Variable gesetzt, dann werden alle Vorkommen des Objekts bzw. der Variablen in der gleichen Prozedur hervorgehoben.
- Kontrollstrukturen, also z. B. Verzweigungen und Schleifen, werden automatisch richtig eingerückt. Sie als Entwickler können sie dadurch leichter erkennen und Fehler vermeiden.
- Besonders gut sehen Sie den Einrückungseffekt, falls Sie z. B. einen ganzen If-Block mithilfe des entsprechenden Symbols auskommentieren bzw. anschließend wieder aktivieren. Die auskommentierten Zeilen rücken alle nach vorne, die wiederum aktivierten Zeilen werden gemäß dem Aufbau der Kontrollstruktur eingerückt.
Die letztgenannten Hilfen gibt es erst seit Visual Basic 2010. Haben Sie sich einmal an dieses Verhalten gewöhnt, bietet IntelliSense eine wertvolle Hilfe zur Codierung und Fehlervermeidung.
Syntaxfehler und IntelliSense sollen mithilfe des nachfolgenden Programms im Projekt Syntaxfehler verdeutlicht werden. Das Programm soll eigentlich zur Überprüfung dienen, ob eine eingegebene Zahl positiv, negativ oder gleich 0 ist.
In den Programmcode wurde allerdings eine Reihe von typischen Fehlern eingebaut. Diese werden bereits während der Codierung automatisch kenntlich gemacht, siehe Abbildung 3.1.
Abbildung 3.1 Programmcode mit Fehlern
Zur Erläuterung:
- In der Zeile If txtEingabe.Txt == "" Then verbergen sich zwei Fehler. Die Eigenschaft Text der TextBox und der Vergleichsoperator = wurden falsch geschrieben.
- Falls die TextBox leer ist, soll die Prozedur sofort verlassen werden. Die zugehörige Anweisung Exit Sub wurde ebenfalls falsch geschrieben.
- Die Klasse mit den Konvertierungsmethoden heißt korrekt Convert und nicht Covert.
- Das Then in der gleichen Zeile und das Else zwei Zeilen tiefer werden angemerkt, weil der If-Block zwei Else-Zweige hat. In der Zeile mit Co(n)vert müsste folglich ein ElseIf stehen.
- In der Zeile vor dem End If wird der Text gleich 0 markiert, da er einem Objekt (lblAnzeige) und nicht der Eigenschaft des Objekts (Text) zugewiesen werden soll.
- Einige Fehler wurden während der Codierung bereits automatisch behoben und sind in
Abbildung 3.1 gar nicht mehr zu sehen:
- Am Ende einer Zeile, die mit If beginnt, wurde beim Zeilenwechsel das Schlüsselwort Then eingefügt.
- Am Ende einer Zeile, die mit einer Zeichenkette endet, wurde beim Zeilenwechsel der zunächst fehlende Anführungsstrich ergänzt.
Bewegen Sie den Cursor über eine der Fehlerstellen im Code, so erscheint eine QuickInfo mit einer Fehlermeldung. Erst nach Korrektur der Fehler sollten Sie einen erneuten Versuch zum Übersetzen und Ausführen starten.
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.