Informatica
Programare - Software - Web Design
|
Nou pe simpatie: deyutza07 Profile
 | Femeie 23 ani Buzau cauta Barbat 25 - 48 ani |
|
|
InformaticaInregistrareLoginPozeNu sunteti logat. Lista Forumurilor Pe Tematici
|
| #1 |
AdminAdministrator
Postari: 315
|
|
JavaScript – tratarea erorilor In timpul navigarii pe internet, ati vazut la un moment dat un alert care va anunta ca exista o eroare de executie si intreba "Do you wish to debug?". Mesajele de eroare pot fi utile pentru programatori dar nu pentru utilizatori. Cand utilizatorii vad erori, de multe ori parasesc acea pagina. Ce puteti face pentru a va pastra vizitatorii? Exista doua modalitati de tratare (catching) a erorilor intr-o pagina web: -folosind instructiunea try...catch disponibila acum in toate browserele -folosind evenimentul onerror. Aceasta este solutia standard (mai veche) de tratare a erorilor intr-o pagina web
Instructiunea Try...Catch
Instructiunea try...catch permite testarea unui bloc de cod. Blocul try contine codul de rulat iar blocul catch contine blocul de executat daca se produce o eroare. try { //aici ruleaza codul } catch(err) { //aici se trateaza erorile }
Exemplul 1
In exemplul de mai jos o greseala (intentionata) conduce la o eroare. In loc de alert ("Welocome" este scris adddlert("Welcome" ; <html><head> <script type="text/javascript"> function message() { adddlert("Welcome guest!" ; } </script></head>
<body> <input> </body> </html>
Daca nu veti primi o eroare explicita sub forma unei casete text atunci urmariti mesajele din status bar (din partea de jos a ferestrei) Pentru a trata potrivit situatia cand o eroare se produce puteti adauga o instructiunea try...catch. Cum alert() este scris gresit, eroarea se va produce oricum, totusi acum blocul catch "prinde" eroarea si executa un cod special facut pentru astfel de situatii. Codul afiseaza un mesaj de eroare informand utilizatorul ce sa intamplat. <html><head> <script type="text/javascript"> var txt=""; //variabila globala care este accesata din orice bloc function message() { try { adddlert("Welcome guest!" ; } catch(err) { txt="Draga utilizator, nu te speria, se mai intampla \n\n"; txt+="daca te pricepi si intelegi despre ce poate fi vorba iata si eroarea:\n\n"; txt+=err.description + "\n\n"; alert(txt); } } </script></head> <body> <input> </body></html>
Se observa ca in blocul catch nu sunt tratate doar un anumit tip de erori (se presupune ca nu putem sti ce fel de eroare se poate produce) ;orice eroare este preluata de obiectul err iar proprietatea acestuia .description contine o descriere succinta a erorii . In urmatorul exemplu vom gasi o modalitate mai elaborata de a trata acceasi problema:
<script type="text/javascript"> var txt="" function message() { try { adddlert("Welcome guest!" ; } catch(err) { txt="S-a produs o eroare.\n\n"; txt+="Apasati OK daca doriti sa ramaneti in aceasta pagina.\n \n"; txt+="sau Cancel pentru a reveni la pagina de inceput.\n\n"; if(!confirm(txt)) { document.location.href="http://www.w3schools.com/"; } } }</script>
In acest exemplu, pe langa explicatiile corespunzatoare erorii, userul poate sa aleaga intre a ramane in pagina sau a se intoarce la pagina de start. Retineti si modul de utilizare a dialogului confirm si modalitatea de realizare a transferului catre alta pagina web folosind proprietatea .location.href
The Throw Statement
The throw statement allows you to create an exception. If you use this statement together with the try...catch statement, you can control program flow and generate accurate error messages. Instructiunea throw permite crearea unei exceptii. Impreuna cu instructiunea try...catch, puteti controla modul de executie a programului si acuratetea generarii mesajelor de eroare. throw(exception) Exemplu In exemplul de mai jos se determina valoarea unei variabile numita x. Daca valoarea lui x este mai mare decat 10 sau mai mica decat 0 se va "arunca" o eroare. Eroarea este apoi "prinsa" de blocul catch (observati argumentul er) si un mesaj corespunzator este afisat.
<html> <body> <script type="text/javascript"> var x=prompt("Introdu un numar intre 0 si 10:","" ; try { if(x>10) { throw "Err1"; } else if(x<0) { throw "Err2"; } else if(isNaN(x)) { throw "Err3"; } } catch(er) {
if(er=="Err1" { alert("Error! Valoare prea mare" ; }
if(er=="Err2" { alert("Error! Valoare prea mica" ; }
if(er=="Err3" { alert("Error! Valoarea nu e numar" ; } } </script> </body> </html>
Evenimentul onerror
Evenimentul onerror este lansat ori de cate ori apare o eroare in pagina. Pentru a folosi evenimentul onerror, trebuie creata o functie care sa gestioneze erorile. Apoi apelati functia cu evenimentul onerror. Functia are 3 parametri: mesaj (mesajul de eroare), adresa (adresa paginii care a produs eroarea) si linie (linia unde s-a produs eroarea) <html> <head> <script type="text/javascript"> onerror=mesajeErori; var txt="";
function mesajeErori(mesaj,adresa,linie) { txt="A fost o eroare in pagina.\n\n"; txt+="Eroare " + mesaj + "\n"; txt+="URL: " + adresa + "\n"; txt+="Linie: " + linie + "\n\n"; txt+="Click OK to continue.\n\n"; alert(txt); return true; } function message() { [/b]adddlert("Welcome guest!" [/b]; } </script> </head>
<body> <input> </body> </html> |
|
|
| |
|