Nächste Seite: CommoditiesSupport Aufwärts: Bibliotheksmoduln Vorherige Seite: Break

# Call

Das Modul `Call` dient dazu, von jedem Ort, aus jeder Prozedur an einen bestimmten Ort zurückkehren zu können. Falls ein Modul aus einer Hauptschleife besteht, in die immer wieder zurückgekehrt werden soll, so ruft man in dieser Hauptschleife die eigentliche Prozedur mittels `Call(Proc)` auf. `Proc` kann nun beliebig tief verschachtelte andere Prozeduren (normal) aufrufen. Im Ausnahmefall sollte das Programm hier nicht durch die Prozedur `Arts.Terminate` abgebrochen, oder ein Fehlerparameter durch sämtliche Prozeduren zurückgereicht werden. Stattdessen reicht ein einfaches `Return`, und man befindet sich wieder in der Hauptschleife. Dies ist zwar eine ,,unsaubere`` Art der Programmierung, aber dann angebracht, wenn beispielsweise jederzeit auf asynchrone Ereignisse reagiert werden muss.

Dieser Mechanismus kann bis zu acht Levels verwalten. Ein weiteres `Call` führt zu einem Laufzeitfehler. Ein `Return` ohne vorheriges `Call()` beendet einfach das Programm.