5-12 Befehlsgruppen-Verzeichnis Inhalt | 6-2 Fehlermeldungen des Compilers


Kapitel 6-1 

Fehlermeldungen des Omikron Basics

Wenn zur Laufzeit Ihres Programms ein Fehler auftritt, wird dieser von Omikron Basic in einer Alert-Box ausgegeben.
In der Alert-Box können Sie zwischen 'Weiter' und 'Ende' wählen. Handelt es sich um einen fatalen Fehler, wird das Programm auch dann abgebrochen, wenn Sie 'Weiter' anklicken. Bei nicht fatalen Fehlern kann das Programm zwar fortgesetzt werden, rechnet aber unter Umständen mit falschen Ergebnissen (z.B. nach einer Division durch Null). Außerdem erzeugen die meisten auch nicht fatalen Fehler Folgefehler, die eine Programmfortsetzung im allgemeinen sinnlos machen. Sie sollten daher immer 'Ende' auswählen und dann der Sache erstmal auf den Grund gehen.
Da die Fähigkeit zum Überwachen von Fehlern Ihr Programm verlängert und die Ausführungsgeschwindigkeit verringert, gibt es eine Reihe von COMPILER-Steuerwörtern, mit denen Sie das Maß der Fehlerüberwachung einstellen können. Es empfiehlt sich, in der Programmentwicklungsphase immer das Steuerwort COMPILER "DEBUG ON" zu verwenden, wodurch alle Fehlerüberwachungen eingeschaltet werden. Viele der nachfolgend aufgeführten Fehlermeldungen werden überhaupt nur angezeigt, wenn dieses Steuerwort gesetzt wurde.
 
2 Syntax-Fehler 
Das Programm ist auf eine Stelle gestoßen, die schon vom Editor als fehlerhaft markiert wurde oder die Syntax eines Befehls stimmt nicht (z.B. falscher Formatstring bei USING).
 
4   DATA-Bereich überschritten
Ein READ-Befehl findet keine Daten mehr. 
Abhilfe: Mehr Daten eingeben, Überprüfung auf Daten-Ende in das Programm einbauen oder nochmal abzählen. 
 
5  Unerlaubter Funktionsaufruf
Eine Funktion oder ein Befehl wurde auf eine Art und Weise verwendet, auf die sie nicht verwendet werden darf. (z.B führt ASC("") zu einem unerlaubten Funktionsaufruf. Auch wenn der erste Parameter hinter BIT kleiner 0 oder größer 31 ist, kann diese Fehlermeldung auftreten. 
Abhilfe: Die Argumente überprüfen.
 
7 Zu wenig BASIC-Speicher vorhanden
Es wird versucht, ein Feld oder einen String anzulegen, obwohl der frei BASIC-Speicher dafür nicht mehr ausreicht. 
Abhilfe: mit COMPILER "BAS_MEM X" genug Speicher reservieren.
 
8 Undefiniertes Label
Es wird versucht, in eine Zeile oder an ein Label zu springen, das gar nicht definiert ist. Dieser Fehler kann nur auftreten, wenn Sie für das Label einen numerischen Ausdruck oder einen String-Ausdruck verwenden. Bei konstanten Sprungmarken findet der Compiler schon während der Übersetzungszeit solche Fehler.
 
 9 Index nicht im dimensionierten Bereich
Sie verwenden ein Element eines Variablen-Feldes, dessen Feldindex größer ist, als das Feld dimensioniert ist. Auch wenn der Index kleiner als Null ist, tritt dieser Fehler auf.

Beispiel:  DIM A$(100) 
              I=200:PRINT A$(I) 
 
13 Typ passt nicht
Dieser Fehler kann auftreten, wenn z.B. versucht wird, mit dem READ-Befehl einen String zu lesen, obwohl der DATA-Zeiger auf eine numerische Variable zeigt oder umgekehrt.
 
15 String ist zu lang
Diese Fehlermeldung tritt auf, wenn Sie einen String verwenden wollen, der länger als 2147483647 Bytes ist. 
Er wird auch gemeldet, wenn der USING-String länger als 249 Zeichen ist oder wenn der FORM_ALERT-String länger als 255 Zeichen ist.
 
38 STOP-Befehl, Programm wird beendet.
Das Programm ist auf einen STOP-Befehl gelaufen.
 
39  Zu wenig Stack-Speicher vorhanden.
Die mit COMPILER "STACK X" eingestellte Stackgröße reicht nicht aus. Zu einem Stackmangel kann es kommen, wenn sich Prozeduren oder Funktionen mit großer Schachteltiefe selbst aufrufen (rekursive Programmierung). Auch der SORT-Befehl benötigt sehr viel Stackspeicher.
 
40  Nicht dimensioniertes Feld
Dieser Fehler tritt auf, wenn versucht wird, ein Feld zu benutzen, das überhaupt nicht dimensioniert wurde. Dazu kann es z.B. kommen, wenn während des Programmlaufs alle Felder mit CLEAR gelöscht werden und anschließend ein Feld benutzt wird, ohne daß es zuvor neu dimensioniert wurde.
 
 
55 Kanal ist bereits geöffnet
Es wurde versucht, einen Kanal, der bereits offen war, nochmal zu öffnen. Wenn Sie mehrere Kanäle parallel öffnen wollen, müssen Sie diesen verschiedene Nummern zuweisen.
 
56 Kanal ist nicht geöffnet
Es wurde versucht, einen Kanal zum Lesen oder Schreiben zu verwenden, obwohl dieser zuvor gar nicht geöffnet wurde.
 
62 File-Ende erreicht
Es wurde versucht, über das Ende einer (sequentiellen) Datei, also über das EOF-Zeichen hinaus, Daten zu lesen. 
Abhilfe: Abfrage mit der EOF-Funktion vor der Eingabe.
 
74 Integer-Überlauf
Es wurde versucht, einer Integer-Zahl einen Wert zuzuweisen, der außerhalb des Wertebereichs dieses Datentyps liegt (z.B. A%=32768).
 
80  Unerlaubte Fließkommaoperation
Es wurde versucht, eine Fließkommaoperation durchzuführen, die nicht definiert ist (z.B A#=SQR(-1)).
 
81  Fließkomma-Zahlenbereich-Überlauf 
Bei einer Berechnung ist als Ergebnis eine Fließkommazahl herausgekommen, die größer ist, als die größte in dem verwendeten Format darstellbare Zahl (z.B. A#=FACT(1000))..
 
82   Fließkomma-Zahlenbereich-Unterlauf
Bei einer Berechnung ist als Ergebnis eine Fließkommazahl herausgekommen, die kleiner ist, als die kleinste in dem verwendeten Format darstellbare Zahl (z.B. A#=1D-200 * 1D-200).
 
83 Fließkomma-Division durch Null 
Es wurde versucht, eine Fließkommazahl durch Null zu dividieren (z.B. A#=1/SQR(0)).
 
 
 

5-12 Befehlsgruppen-Verzeichnis Inhalt | 6-2 Fehlermeldungen des Compilers

Support | Bestellen | Start | Home: http://www.berkhan.de


© 1997-2001 Berkhan-Software