Kompilierungsfehler – Mappedia

Kompilierungsfehler

Aus Mappedia
Wechseln zu: Navigation, Suche
Durch fehlerhaftes Jass-Script ist ein Kompilierungsfehler aufgetreten.

Kompilierungsfehler sind Fehler, die beim Speichern einer Map auftreten. Sie bedeuten, dass der Welt-Editor Probleme mit dem JASS-Script hat, da es so nicht funktioniert. Da jeder Auslöser in Wirklichkeit ein Jass-Script ist, können diese Fehler theoretisch jederzeit auftreten. Dass dies tatsächlich in GUI-Triggern vorkommt ist praktisch ausgeschlossen, da der Editor die nötigen Konvertierungen von GUI zu JASS automatisch ausführt. Häufig weiß der Editor aber selbst nicht was nun eigentlich der Fehler ist und gibt deshalb etwas naheliegendes aus. Deshalb sind nicht alle Fehlermeldungen eindeutig einem Fehler zuzuordnen.

Inhaltsverzeichnis

Interpretation von Fehlern

Die Interpretation von den gemeldeten Kompilierungsfehlern ist meist recht schwierig, da das Programm, was die Fehler erkennt, nicht sehr gut ist. Meistens werden Fehler in der falschen Zeile gemeldet, und die Fehler selbst sind irreführend.

Finden der Zeile

Die Zeile, die den Fehler verursacht ist nicht immer die Zeile, in der dem Kompilierer der Fehler auch auffällt. Eine fehlende schließende Klammer am Ende einer Zeile fällt beispielsweise erst in der Zeile danach auf, da der Kompilierer erst da sicher sein kann, dass die Klammer wirklich nicht mehr kommt. Fehler werden sehr häufig zu spät gemeldet, aber nie zu früh! Die Zahl der Zeilen, um die sich ein Fehler verspätet, variiert.

Art des Fehlers bestimmen

Die Fehler werden manchmal falsch erkannt. Der Kompilierer kann schlieslich nicht wissen, was mit einer Zeile gemeint war, die er nicht versteht. Deshalb sollte man Fantasie bei der Interpretation von Fehlermeldungen haben.

Folgefehler

Wenn einmal ein Fehler aufgetreten ist, kann der Sinn des gesammten Codes, der darauf folgt verloren gehen. Deshalb wird der Benutzer manchmal mit Fehlern überflutet, obwohl nur ein einziges Wort falsch geschrieben ist. Deshalb sollte man immer nur den ersten Fehler, der auftritt beachten.

Arten von Fehlern und häufige Ursachen

Alle Fehlermeldungen des standardmäßig im Editor aktiven Syntax-Checkers in alphabetischer Reihenfolge:

"(' erwartet"

"Ausdruck erwartet"

"Array-Index erwartet"

"call' erwartet"

"Code-Anweisung erwartet"

"endif' erwartet"

"Es wurde versucht"

"Funktionsname erwartet"

"Reservierter Typ oder Handle-Typ erwartet"

"then' erwartet"

"Ungültige Argumentenzahl"

"Ungültiger Typ für angegebenen Operator"

"Variablenname erwartet"

"Zeilenende erwartet"

Kompilierungsfehler durch importierte Dateien

Manchmal treten Kompilierungsfehler auch beim Import größerer Dateien und/oder besonders von MP3s auf. Sie lassen sich aber relativ einfach wie folgt umgehen:

  1. Man importiert die Sounds
  2. Man versucht abzuspeichern (dann erscheint die Fehlermeldung)
  3. Man ignoriert die Fehlermeldung, denn die Map wird trotzdem gespeichert, ist aber nicht mehr spielbar.
  4. Man schließt den Welt Editor
  5. Man öffnet den Welt Editor wieder und lädt seine Map
  6. Man speichert seine Map und... es geht

Es empfiehlt sich aber, nach dem importieren der Sounds wirklich SOFORT zu Schritt 2 und dann 3 und 4 überzugehen, da sonst andere importierte Dateien oder Auslöser beschädigt werden könnten.

Kompilierungsfehler in GUI-Triggern

In einem reinen GUI-Trigger ohne Custom Script, kann in der Regel kein Kompilierungsfehler auftreten, da das GUI ja gerade die Funktion erfüllt, eine einfachere Oberfläche für Jass-Code zu bieten, wobei nur logische Fehler möglich sind. Solche Fehlermeldungen weisen auf einen Fehler im World Editor selbst hin. Es gibt dokumentierte Fälle, in denen plötzlich eine vorher funktionierende Map, sich plötzlich nicht mehr speichern lässt, da Kompilierungsfehler auftreten, und zwar in Triggern, die völlig ohne Hilfe von Jass erstellt wurden. Solche Fälle lassen sich in der Regel durch Neuinstallation von Warcraft III beheben.

Alternative Syntaxchecker

Ein alternativer Syntaxchecker ist das Programm PJASS. Dieses lässt sich unter anderem mit Grimoire oder dem World Editor Helper in den Editor einbinden. Die Fehlermeldungen sind dann um einiges korrekter, und genauer. Zum Beispiel wird nichtmehr nur gesagt, dass ein Bezeichner nicht erkannt wurde, sondern auch, wie der heißt. Ausserdem werden dadurch die Abstürze, die der Syntaxchecker vom Editor manchmal hervorruft, vermieden.

Siehe auch

Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Warcraft-Mapping
Werkzeuge