Fehlermeldungen

Wenn der Kompilierer einen Fehler im Quellcode findet, gibt er eine Fehlermeldung aus. Eine Fehlermeldung sieht zum Beispiel so aus:

Typ Fehler (3001) in test.ddp (Z: 1, S: 16)

1 |  Die Zahl z ist "hallo".
  |                 ^^^^^^^

Ein Wert vom Typ Text kann keiner Variable vom Typ Zahl zugewiesen werden.

Die erste Zeile enthält:

Darunter wird die fehlerhafte Zeile angezeigt. Die ^ Zeichen markieren die genaue Stelle. Am Ende steht eine Beschreibung des Fehlers.

Manche Meldungen sind nur Warnungen. Bei einer Warnung wird das Programm trotzdem kompiliert.

Die erste Ziffer des Fehlercodes verrät die Art des Fehlers:

FehlercodesArtBedeutung
0000Sonstiger FehlerFehler, die in keine andere Kategorie passen
1000 - 1999Syntax FehlerDer Quellcode ist nicht richtig aufgebaut
2000 - 2999Semantischer FehlerDer Quellcode ist richtig aufgebaut, ergibt aber keinen Sinn
3000 - 3999Typ FehlerEin Wert hat den falschen Typ

Liste der Fehlercodes

Sonstige Fehler

CodeBeschreibung
0000Ein Modul konnte nicht eingebunden werden, zum Beispiel weil die Datei nicht existiert oder zwei Module sich gegenseitig einbinden

Syntax Fehler

CodeBeschreibung
1000Ein unerwartetes Wort oder Zeichen wurde gefunden. Oft fehlt ein Punkt oder ein Komma
1001Es wurde ein Literal erwartet, aber ein Ausdruck gefunden
1002Es wurde ein Name erwartet, zum Beispiel ein Parametername
1003Es wurde ein Typname erwartet
1004Es wurde ein Großbuchstabe erwartet
1005Ein Literal ist fehlerhaft, zum Beispiel wegen einer ungültigen Escape-Sequenz
1006Der Pfad einer Einbindung ist fehlerhaft
1007Ein Alias ist fehlerhaft aufgebaut
1008Der Text ist kein gültiges UTF-8
1009Der Artikel oder das Pronomen passt nicht zum grammatikalischen Geschlecht des Typs, zum Beispiel Der Zahl z ist 1.
1010Der Name eines überladenen Operators ist ungültig

Semantische Fehler

CodeBeschreibung
2000Der Name wurde bereits benutzt
2001Der Name wurde noch nicht deklariert
2002Die Anzahl der Parameternamen und Parametertypen einer Funktion ist unterschiedlich
2003Bei einer externen Funktion wurde kein Pfad zu einer .c, .lib, .a oder .o Datei angegeben
2004Eine Funktion wurde nicht im globalen Bereich deklariert
2005Einer Funktion fehlt die Rückgabe Anweisung
2006Ein Alias ist fehlerhaft, zum Beispiel weil Parameter fehlen
2007Der Alias wird bereits von einer anderen Funktion oder Kombination benutzt
2008Ein Alias aus einem eingebundenen Modul existiert bereits
2009Ein nachträglicher Alias wurde nicht im globalen Bereich deklariert
2010Die Argumente eines nachträglichen Alias passen nicht zur Funktion
2011Eine Rückgabe Anweisung steht außerhalb einer Funktion
2012Ein Funktionsname wurde statt eines Variablennamens benutzt oder umgekehrt
2013Eine nicht globale Deklaration wurde als öffentlich markiert
2014Ein Typ wurde nicht im globalen Bereich deklariert
2015Ein Feld existiert in dieser Kombination nicht
2016Das Wort öffentlich fehlt oder steht an einer falschen Stelle
2017Verlasse die Schleife oder Fahre mit der Schleife fort steht außerhalb einer Schleife
2018Ein Typ ist unbekannt oder wurde nicht eingebunden
2019Eine externe Funktion wurde unnötigerweise auch als extern sichtbar markiert
2020Die Anzahl der Parameter passt nicht zum überladenen Operator
2021Der Operator ist für diese Parametertypen bereits überladen
2022(Warnung) Ein ... Platzhalter wurde gefunden
2023Ein Typ kann nicht als Variable definiert werden
2024Eine Funktion wurde mit wird später definiert deklariert, aber nie definiert
2025Eine Funktion aus einem anderen Modul wurde definiert
2026Eine Funktion wurde bereits definiert
2027Eine generische Funktion hat keinen Typparameter
2028Eine generische Kombination hat keinen Typparameter
2029Eine generische Funktion wurde als extern sichtbar markiert
2030Eine generische Funktion wurde ohne Definition deklariert
2031Beim Erstellen einer generischen Funktion für bestimmte Typen gab es Fehler
2032Ein nicht generischer Typ wurde mit Typparametern benutzt
2033Bei einem Alias einer generischen Kombination konnten nicht alle Typparameter herausgefunden werden
2034Einer Konstanten kann kein Wert zugewiesen werden

Typ Fehler

CodeBeschreibung
3000Ein Operator oder eine Funktion hat einen Wert vom falschen Typ bekommen
3001Ein Wert vom falschen Typ wurde einer Variable zugewiesen
3002Eine Indizierung ist fehlerhaft, zum Beispiel weil der Index keine Zahl ist
3003Die Werte in einem Listen Literal haben nicht alle denselben Typ
3004Eine Typumwandlung mit als ist nicht möglich
3005Ein Referenz-Parameter hat keine Variable bekommen
3006Ein Wert kann nicht als Referenz übergeben werden, zum Beispiel ein Buchstabe in einem Text
3007Die Bedingung ist kein Wahrheitswert
3008Ein Wert in einer zählenden Schleife hat den falschen Typ
3009Der zurückgegebene Wert passt nicht zum Rückgabetyp der Funktion
3010Der von Operator wurde mit einem Wert benutzt, der keine Kombination ist
3011Ein privates Feld wurde aus einem anderen Modul benutzt
3012Ein überladener Operator gibt nichts zurück
3013Ein Typparameter wurde als Referenz angegeben
3014Der Typ eines generischen Feldes konnte nicht herausgefunden werden
3015Ein generischer Typ konnte mit den angegebenen Typen nicht erstellt werden
3016Ein generischer Parameter einer externen Funktion ist keine Liste oder Referenz