9.2 Syntaxfehler

Syntaxfehler sind häufig und recht leicht aufzuspüren. Dass liegt daran, dass Programmiersprachen sehr genau sind. Die Verwendung und die Schreibweise aller Befehle muss genau eingehalten werden. Das ist auch in Sonic Pi so.

Sonic Pi prüft erst beim Abspielen des Songs, ob Fehler enthalten sind. Falls dies der Fall ist, dann stoppt Sonic Pi beim ersten auftretenden Fehler und gibt eine Fehlermeldung aus. Die Fehlermeldung enthält als Hinweis die Nummer des Arbeitsbereiches und der Zeile. Anschließend gibt es eine kurze prägnante Fehlerbeschreibung. Und noch besser: Sonic pi kennzeichnet die Zeile am Zeilenanfang mit einem kleinen Pfeil, siehe rechts.

Die Methode

scale

erwartet in der nachfolgenden Klammer 2 Argumente, nämlich zuerst den Grundton und dann den Typ der Tonleiter. Die möglichen Typen sind in Sonic Pi vordefiniert. „de“ ist kein Typ und entsprechend ist dann die Fehlermeldung:

Runtime Error: [Arbeitsbereich 0, line 10] Unknown scale name: :de

Welche Fehlermeldung wird ausgegeben, falls man überhaupt nur ein Argument übergibt? Das ist einfach:

Runtime Error: [Arbeitsbereich 0, line 10] wrong number of arguments (1 for 2)

Erklärung: (1 for 2), bedeutet , dass 2 Argumente erwartet werden, aber nur 1 mitgegeben wird.

Mit einem Run kann man in Sonic Pi nur einen Fehler aufspüren, da der Run beim ersten Fehler abbricht. Das ist aber kein Problem, solange die Läufe recht kurz sind. Man muss dann nur mehrere Läufe starten und die Fehler von oben nach unten eliminieren.

Das Beheben der Fehler ist recht unkompliziert. Bei Tippfehlern ändert man einfach die entsprechende Anweisung. Falls Du die richtige Schreibweise nicht kennst oder die Benutzung einer Methode unklar ist, dann solltest Du die automatische Ergänzung benutzen oder in der Hilfe nachschauen.

Fehler die sehr weit hinten im Programm vorkommen, benötigen manchmal lange Zeit bis zum Auftreten. Dann lohnt es sich, dies Zeile und den notwendigen Code vorher in einen anderen Arbeitsbereich zu kopieren und dort zu starten. Hat man den Fehler gefunden und in der Kopie behoben und damit einen erfolgreichen Lauf, dann kopiert man die verbesserten Zeilen zurück in die Originalversion und probiert die Verbesserung dort noch einmal aus.

error_1