ERR$
ERR$ | |
Syntax: | ERR$(<Fehlernummer>) |
Parameter | |
<Fehlernummer>: numerischer Ausdruck mit gültiger Fehlernummer | |
Einordnung | |
Typ: | String-Funktion |
Kontext: | Fehlerbehandlung |
Aufgabe: | Fehlertext zu einer gegebenen Fehlernummer ermitteln |
Abkürzung: | eR |
Token: | $d3 (211) |
Verwandte Befehle | |
EL, ER |
Anmerkung: Dieser Artikel beschreibt die BASIC-Funktion ERR$ ab Commodore BASIC V3.5 oder höher.
Die BASIC-Funktion ERR$() liefert den Fehlertext zu einer gegebenen Fehlernummer.
Für das Argument Fehlernummer sind gültige Fehlernummern erlaubt (in BASIC 3.5 von 1 bis 36, in BASIC 7.0 von 1 bis 41). Werte außerhalb des erlaubten Bereichs führen zu einem ?ILLEGAL QUANTITY ERROR.
Ist das Argument keine Zahl, so erscheint die BASIC-Fehlermeldung ?TYPE MISMATCH ERROR. Fehlt das Argument oder sind zu viele angegeben, erscheint ?SYNTAX ERROR.
Fehlernummern mit dazugehörendem Text:
Fehler- nummer |
Fehlermeldung | Beschreibung | Bemerkung | |
---|---|---|---|---|
1 | TOO MANY FILES | Zu viele Dateien: Es wurde versucht, mehr als 10 Dateien gleichzeitig zu öffnen. | ||
2 | FILE OPEN | Datei offen: Es wurde versucht, eine Datei mit einer bereits verwendeten logischen Dateinummer zu öffnen. | ||
3 | FILE NOT OPEN | Datei nicht geöffnet: Die verwendete logischen Dateinummer wurde noch nicht geöffnet. | ||
4 | FILE NOT FOUND | Datei nicht gefunden: Die angegebene Datei wurde nicht gefunden oder die Bandendemarke auf der Datasette wurde gelesen. | ||
5 | DEVICE NOT PRESENT | Gerät nicht angeschlossen: Das angegebene Gerät ist entweder nicht vorhanden oder abgeschalten oder die Pufferzuweisung für Kassetten-Ein-/Ausgabe ist aufgehoben. | ||
6 | NOT INPUT FILE | Keine Eingabedatei: Es wurde versucht aus einer zur Ausgabe geöffneten Datei zu lesen. | ||
7 | NOT OUTPUT FILE | Keine Ausgabedatei: Es wurde versucht in eine zum Lesen geöffneten Datei zu schreiben. | ||
8 | MISSING FILE NAME | Dateiname ist angegeben, aber leer (z.B. SAVE, VERIFY, SCRATCH, DIRECTORY). | ||
9 | ILLEGAL DEVICE NUMBER | Gerätenummer hat bei Massenspeicherbefehlen keinen zulässigen Wert. | BASIC V2 erlaubt für LOAD/SAVE/VERIFY 0,2,3 nicht. BASIC 3.5 erlaubt Werte von 3 bis 31, während BASIC 7.0 nur Werte von 4 bis 30 akzeptiert. |
|
10 | NEXT WITHOUT FOR | Ein NEXT-Befehl ohne zugehörigem FOR wurde gefunden. | ||
11 | SYNTAX | Der Aufbau einer Programm- oder Eingabezeile entspricht formal nicht der erwarteten Struktur (falsche Befehlsabfolge oder -struktur, falscher Befehlsname, fehlende oder zu viele Argumente bei Befehlen oder Funktionen). | ||
12 | RETURN WITHOUT GOSUB | Dem RETURN-Aufruf ist im Programmverlauf kein dazugehöriges GOSUB vorangegangen. | ||
13 | OUT OF DATA | Der READ-Befehl hat bereits alle Werte aus den DATA-Zeilen gelesen (sofern vorhanden). | ||
14 | ILLEGAL QUANTITY | Parameter von Funktionen oder Befehlsargumenten weisen einen Wert außerhalb des erlaubten Bereichs auf. | ||
15 | OVERFLOW | Eine Zahlendarstellung bzw. ein Rechenausdruck liefert einen Wert außerhalb der Grenzen der Fließkommazahlendarstellung (siehe VAL-Funktion). | ||
16 | OUT OF MEMORY | Der freie Speicherplatz (für Programm, Variablen, Zeichenketten) oder der BASIC-Stapel ist ausgeschöpft. | ||
17 | UNDEF'D STATEMENT | Eine mittels COLLISION, ELSE, GOTO, GOSUB, RESTORE, RESUME, RUN, THEN und TRAP adressierte Zeile existiert nicht. | ||
18 | BAD SUBSCRIPT | Ein Element einer Feldvariable existiert nicht (Index größer als der maximale Index der implizite Dimensionierung, nämlich 10, oder der mittels DIM festgelegten). | ||
19 | REDIM'D ARRAY | Feldvariable wurde zum 2. Mal versucht mittels DIM zu dimensionieren. | ||
20 | DIVISION BY ZERO | Division durch Null. | ||
21 | ILLEGAL DIRECT | Ein nicht für den Direktmodus geeigneter Befehl (z.B. GET$) wurde aufgerufen. | ||
22 | TYPE MISMATCH | Ein Befehlsargument oder Funktionsparameter wies nicht den geforderten Wertetyp (Zahl bzw. Zeichenkette) auf. | ||
23 | STRING TOO LONG | Eine Zeichenkette war in einem Ausdruck (mehr 255 Zeichen) oder als Befehlsargument bzw. Funktionsparameter länger als erlaubt. | ||
24 | FILE DATA | Es wurde versucht, aus einer Eingabedatei mittels GET# oder INPUT# alphanumerische Daten in eine numerische Variable einzulesen. | ||
25 | FORMULA TOO COMPLEX | Ausdrucksauswertung wies zu viele Verschachtelungen bzw. am Stapel war zu wenig Platz dafür. | ||
26 | CAN'T CONTINUE | Die Programmfortsetzung mittels CONT ist nicht mehr möglich, weil der Status des laufenden Programms nicht mehr verfügbar ist. | ||
27 | UNDEF'D FUNCTION | Der Aufruf mittels FN bezieht sich auf eine (noch) nicht definierte Funktion (DEF). | ||
28 | VERIFY | Der VERIFY- oder DVERIFY-Befehl hat einen Unterschied festgestellt. | ||
29 | LOAD | Der BOOT-, BLOAD-, DLOAD-, LOAD- oder RUN-Befehl konnte die Datei fehlerbedingt nicht (vollständig) laden. | ||
30 | BREAK | Manuelle Unterbrechung mittels Taste RUN/STOP oder nach einem STOP-Befehl. | ||
31 | CAN'T RESUME | RESUME wurde ohne vorheriges TRAP-Befehl aufgerufen oder ein Fehler in der TRAP-Behandlungsroutine selbst ist aufgetreten. | ab BASIC 3.5 | |
32 | LOOP NOT FOUND | Eine DO-LOOP-Schleife wurde nicht mit LOOP abgeschlossen. | ab BASIC 3.5 | |
33 | LOOP WITHOUT DO | Ein LOOP ohne zugehörigem DO wurde gefunden. | ab BASIC 3.5 | |
34 | DIRECT MODE ONLY | Das Programm traf auf einen nur für den Direktmodus vorgesehenen Befehlt (z.B. AUTO, DELETE). | ab BASIC 3.5 | |
35 | NO GRAPHICS AREA | Grafikbefehl wurde aufgerufen, obwohl noch kein Grafikmodus aktiv ist oder war (GRAPHIC). | ab BASIC 3.5 | |
36 | BAD DISK | Diskbefehl hat ein fehlerhaftes Medium festgestellt (z.B. HEADER, BACKUP). | ab BASIC 3.5 | |
37 | BEND NOT FOUND | Das abschließende BEND eines BEGIN-BEND-Blocks wurde nicht gefunden. | nur BASIC 7.0 | |
38 | LINE NUMBER TOO LARGE | Beim RENUMBER würde die höchste zulässige Zeilennummer (63999) überschritten werden. | nur BASIC 7.0 | |
39 | UNRESOLVED REFERENCE | Beim RENUMBER wurde ein nicht vorhandenes Sprungziel gefunden. | nur BASIC 7.0 | |
40 | UNIMPLEMENTED COMMAND | Es wurde versucht, einen nicht implementierten Befehl auszuführen, z.B. OFF oder KEY OFF. | nur BASIC 7.0 | |
41 | FILE READ | Ein Lesefehler beim Einlesen einer Datei ist aufgetreten. | nur BASIC 7.0 |
Beispiele[Bearbeiten | Quelltext bearbeiten]
PRINT ERR$(ER);" ERROR IN ";EL;" AUFGETRETEN!"
Gibt Fehlertext und Zeilennummer des zuletzt aufgetretenen Fehlers aus.
10 TRAP 70 20 FOR I=0 TO 255 30 M$=ERR$(I) 40 PRINT I, M$ 50 NEXT 60 END 70 RESUME 50
Dieses Programm gibt für alle Fehlernummern den dazugehörenden Text aus. Die Fehlerbehandlungsroutine in Zeile 70 verhindert einen Abbruch bei illegalen Fehlernummern.
AUTO | BACKUP | BOX | CHAR | CIRCLE | COLLECT | COLOR | COPY | DEC | DELETE | DIRECTORY | DLOAD | DO | DRAW | DS | DS$ | DSAVE | EL | ELSE | ER | ERR$ | EXIT | GETKEY | GRAPHIC | GSHAPE | HEADER | HELP | HEX$ | INSTR | JOY | KEY | LOCATE | LOOP | MONITOR | PAINT | PRINT USING | PUDEF | RCLR | RDOT | RENAME | RENUMBER | RESUME | RGR | RLUM | SCALE | SCNCLR | SCRATCH | SOUND | SSHAPE | TRAP | TROFF | TRON | UNTIL | VOL | WHILE