27.10.2013 Aufrufe

F - Epson

F - Epson

F - Epson

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

SPEL+ Sprachreferenz<br />

Einschränkungen<br />

Denken Sie daran, dass alle Fehler mit der EClr-Anweisung gelöscht werden müssen:<br />

Wenn der Anwender in der Fehlerbehandlungsroutine jedoch keine EClr Anweisung verwendet, um<br />

den Fehler zu löschen, kann das System in einer Endlosschleife stecken bleiben. Wenn der Fehler<br />

nicht mithilfe der Fehlerbehandlungsroutine zurückgesetzt wird, gibt das System auf den OnErr-Befehl<br />

hin die Steuerung sofort nach seiner Rückkehr zur Hauptroutine an das Fehlerbearbeitungsprogramm<br />

zurück. Der Grund dafür ist, dass das System davon ausgeht, es sei erneut ein Fehler aufgetreten,<br />

während es tatsächlich nur auf den vorangegangenen Fehler reagiert (der nicht gelöscht wurde). Da<br />

die Fehlerbehandlungsroutine den Fehler nicht zurücksetzt, tritt eine Endlosschleife auf. (Seien Sie<br />

daher vorsichtig!)<br />

Verschachtelte Fehlerbehandlung<br />

SPEL unterstützt keine verschachtelte Fehlerbehandlung. Das bedeutet, dass wenn beim Beheben<br />

eines Fehlers ein neuer Fehler auftritt, das System nicht in der Lage ist, erneut zur<br />

Fehlerbehandlungsroutine zu wechseln, um den zweiten Fehler zu beheben. In diesem Fall bricht das<br />

System den Task einfach ab und gibt eine Fehlermeldung aus.<br />

Verwandte Befehle<br />

EClr, Err<br />

OnErr Beispiel<br />

Das folgende Beispiel zeigt ein einfaches Dienstprogramm, das prüft, ob ob die Punkte P0-P399<br />

existieren. Wenn der Punkt nicht existiert, erscheint eine Nachricht auf dem Bildschirm, um den<br />

Anwender diesen Umstand wissen zu lassen. Das Programm verwendet den CX-Befehl, um jeden<br />

einzelnen Punkt dahin gehend zu testen, ob er definiert wurde, oder nicht. Wenn ein Punkt nicht<br />

definiert ist, wird die Steuerung an die Fehlerbehandlungsroutine übergeben und auf dem Bildschirm<br />

erscheint eine Nachricht, die dem Anwender mitteilt, welcher Punkt nicht definiert war.<br />

Function errDemo<br />

Integer i, errNum<br />

OnErr GoTo errHandler<br />

For i = 0 To 399<br />

temp = CX(P(i))<br />

Next i<br />

Exit Function<br />

'<br />

'<br />

'*********************************************<br />

'* Error Handler *<br />

'*********************************************<br />

errHandler:<br />

errNum = Err(0)<br />

EClr<br />

'Überprüft, ob ein undefinierter Punkt verwendet wird<br />

If errNum = 78 Then<br />

Print "Point number P", i, " is undefined!"<br />

Else<br />

Print "ERROR: Error number ", errNum, " occurred while"<br />

Print " trying to process point P", i, " !"<br />

EndIf<br />

EResume<br />

Fend<br />

SPEL+ Language Reference Rev 3.5 299

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!