Engleză: ON = pornit; ERROR = eroare
onerror etichetă
Instrucțiunea OnError pornește o capcană care să capteze și să trateze erorile de execuție. Din momentul în care o capcană este activă, în cazul unei erori de execuție, aceasta din urmă nu mai este afișată în fereastra “Ieșire Text”, iar programul nu mai este oprit din execuție.
O capcană OnError activă întrerupe programul și execută un salt de tip Gosub la eticheta menționată ori de câte ori are loc o eroare. După ce codul de la eticheta menționată este executat și se întâlnește instrucțiunea Return, execuția programului este reluată din același punct în care a fost întreruptă când a apărut eroarea.
Capcanele de erori definite cu OnError sunt păstrate într-o stivă, astfel încât doar ultima capcană definită va fi cea activă. Pentru a elimina ultima capcană din stivă se va utiliza instrucțiunea OffError.
De menționat este faptul că aceste capcane sunt inactive în cadrul capcanelor definite prin blocurile de tip Try / Catch / End Try.
# test pentru tartarea erorilor onerror capcana print 1 a = 0/0 print 2 open 999, "fișier_imaaginar" print 3 i = imageload("http://adresainexistenta.net/imagine.jpg") print "Rulează în continuare" # oprește captarea erorilor offerror print 4 a = 0/0 print "niciodată nu va ajunge aici" end capcana: # aici se vor gestiona erorile întâlnite print "Capcană - eroare la linia: ["; lasterrorline; "]; cod eroare: ["; lasterror; "]; mesaj: ["; lasterrormessage; "]; informații suplimentare: ["; lasterrorextra; "]" return
va afișa:
1 Capcană - eroare la linia: [4]; cod eroare: [50]; mesaj: [Division by zero]; informații suplimentare: [] 2 Capcană - eroare la linia: [6]; cod eroare: [5]; mesaj: [Invalid File Number]; informații suplimentare: [] 3 Capcană - eroare la linia: [8]; cod eroare: [93]; mesaj: [Error downloading file]; informații suplimentare: [Host adresainexistenta.net not found] Rulează în continuare 4 ERROR on line 13: Division by zero.
Vezi și exemplul de utilizare din pagina instrucțiunii ThrowError.
0.9.6z | Adăugată în acestă versiune |
1.99.99.33 | Removed the ability to use a subroutine for error trapping |