User Tools

Site Tools


ro:onerror

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

ro:onerror [2017/08/23 03:36] (current)
junior-root created
Line 1: Line 1:
 +===== OnError (Instrucțiune) =====
 +> **Engleză:​** //**ON** = pornit; **ERROR** = eroare//
 +==== Format ====
 +**onerror** [[labelprogramsyntax|etichetă]]
 +==== Descriere ====
 +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 [[GosubReturn|Gosub]] la [[labelprogramsyntax|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|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|OffError]].
 +
 +De menționat este faptul că aceste capcane sunt inactive în cadrul capcanelor definite prin blocurile de tip [[Try|Try / Catch / End Try]].
 +==== Exemplu ====
 +<​code>​
 +# 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
 +</​code>​
 +va afișa:
 +<​code>​
 +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.
 +</​code>​
 +Vezi și exemplul de utilizare din pagina instrucțiunii [[ThrowError|ThrowError]].
 +==== Vezi și ====
 +{{page>​ro:​start#​Tratarea excepțiilor&​noheader}}
 +==== Istoric ==== 
 +|0.9.6z|Adăugată în acestă versiune|
 +|1.99.99.33|Removed the ability to use a subroutine for error trapping|
  
ro/onerror.txt · Last modified: 2017/08/23 03:36 by junior-root