Fehlerbehandlung

BASIC2006

Während dem Ablauf von Programmen können sogenannte Laufzeitfehler auftreten. Diese werden zumeist nicht durch Fehler in Programmen verursacht und können daher nicht vom Compiler festgestellt werden. Sie treten nur während der Laufzeit auf. Ungültige oder fehlerhafte Eingaben oder nicht erwartete Werte können diese Fehler hervorrufen.

Deshalb werden oft Mechanismen zur Fehlerbehandlung implementiert. Jedoch unterstützt das Betriebssystem der C-Control I keine Fehlerbehandlung für BASIC-Programme. Aus diesem Grund erstellt BASIC++ bei Bedarf die Routinen zur Behandlung von Laufzeitfehlern automatisch während der Kompilierung.

Dafür wird das ON ERROR-Schlüsselwort in BASIC++ verwendet um Laufzeitfehler abzufangen. Die Verwendung von On Error ist ausschließlich in Funktionen möglich. Der Aufruf von On Error auf anderen Controllern wie der Unit M2.0 oder MICRO sollte vermieden werden. Achten Sie ferner darauf, dass bei einem Fehler, der mit On Error abgefangen wird dem ersten WORD (MICRO: ersten BYTE) im Speicher die Fehlernummer zugewiesen wird. Diese Speicherstelle wird allerdings auch für die systemeigenen Rückgabewerte verwendet. Eventuell sollte man deswegen bei kritischen Programmteilen Rückgaben manuell mit dem Stack Objekt steuern.

Ein abgefangener Fehler kann nun einfach verarbeitet werden. Hierfür springt der Controller zu einer Sprungstelle, die ihm durch den Benutzer während der Programmierung vorgegeben wurde. Der hier stehende Code wird allein durch den Programmierer bestimmt. Je nach Art des Fehlers kann dann eine Reaktion darauf stattfinden.

Die Art des Fehlers werden durch Fehlercodes unterschieden. Fehlercodes können mit dem ERR Objekt abgefragt werden (Eigenschaft: Err.Number). Beachten Sie, dass Err.Number während der Laufzeit auch Werte annehmen kann, die keine Fehlercodes darstellen. Sie sollten also Err.Number nur innerhalb einer Fehlerbehandlung aufrufen.

Siehe auch ON ERROR, Fehlercodes

© 2004 - 2012 tappertzhofen. Alle Reche vorbehalten.
Seitenanfang | Impressum