Simpatie.ro - matrimoniale
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
Informatica / Despre limbajele de programare /

Fise de lucru JavaScrip - js8

Pagini: 1  
#1
Admin
Administrator
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>


 
   
Pagini: 1  
Mergi la