ERR$

Aus C64-Wiki
Wechseln zu: Navigation, Suche
ERR$
Format: 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
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]

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.