Exception-EndException

Exceptions dienen der Fehlersuche direkt im Programm. Fehlerbehandlung bei Auftreten einer Exception.

Syntax:

  • Exception ExceptionName
    • Programmcode
    • [Raise]
  • EndException
ExceptionName Beschreibung Raise
DivisionByZero1) Division durch Null in einer Kalkulation aufgetreten ja
OutOfBoundsMemory MemoryBlock Objektgrenze verletzt ja
NilObjectException Objekt auf das sich der Aufruf bezieht existiert nicht ja
OutOfSpaceMemory Arbeitsspeicher voll, Objekt kann nicht alloziert werden nein
StackOverflow Der Stack ist übergelaufen. Siehe auch.. nein

Wird ein Exceptionhandler im Programmcode verwendet, werden die jeweiligen Debugfunktionen aktiviert. Die Zugriffsgeschwindigkeiten werden z.T. reduziert und es wird zusätzlicher Speicherplatz im Flash benötigt.

Sofern möglich (siehe Tabelle), kann mit dem Befehl Raise die Programmausführung fortgesetzt werden. Andernfalls wird das Programm nach Auftreten einer Exception durch eine Endlosschleife angehalten (HALT).

' Initialisierung
[..]
' Hauptprogramm
dim a as byte
dim m,m1 as MemoryBlock
m.New(100)           'MemoryBlock allozieren mit 100 Bytes
a=m.ByteValue(100)   'Löst Exception aus, da außerhalb der Objektgrenzen 
                     '(Zugriff hier nur 0-99 erlaubt, Offsets sind Nullbasiert)
m1.ByteValue(0)=1    'Zuweisung zu einem nicht existierendes Objekt
m1.New(3000)         'mehr Speicher allozieren als vorhanden ist (Programm wird angehalten)
do
Loop
 
' Exception-Handler definieren (Aktiviert die Überwachungsfunktionen)
Exception OutOfSpaceMemory
  ' Fehlermeldung ausgeben
  Print "*** Exception OutOfSpaceMemory ***"
EndException
Exception OutOfBoundsMemory
  ' Fehlermeldung ausgeben
  Print "*** Exception OutOfBoundsMemory ***"
  Raise  ' Programm fortführen
EndException
Exception NilObjectException
  ' Fehlermeldung ausgeben
  Print "*** Exception NilObjectException ***"
  Raise  ' Programm fortführen
EndException
Exception StackOverflow
  ' Fehlermeldung ausgeben
  Print "*** Exception StackOverflow ***"
EndException
1) Ab Version 2015.r1