FAQ Autentificare
Cautare Profil
Membri Grupuri
Mesaje private
Inregistrare
Fise de lucru JavaScrip - js8
Creaza un subiect nou   Raspunde la subiect
Pagina de start a forumului  » Despre limbajele de programare  » Fise de lucru JavaScrip - js8
Subiectul anterior :: Subiectul urmator  
Autor Mesaj
Admin
Administrator
Administrator


Data inscrierii: 07/Dec/2013
Mesaje: 44

 Mesaj Trimis: 22/01/2017 18:30    Titlul subiectului: Fise de lucru JavaScrip - js8
Raspunde cu citat (quote)

Citat:
JavaScript – tratarea erorilor
In momentul navigarii pe internet, ati vazut la un clipă 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 numeroase 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 îngăduie 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 cauzează puteti adauga o instructiunea try...catch. Cum alert() este scris gresit, eroarea se va realizează 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 conceput 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 întrebuințare a dialogului confirm si modalitatea de realizare a transferului catre alta pagina web utilizând 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>
 Sus »
Vezi profilul utilizatorului Trimite mesaj privat
Afiseaza mesajele pentru a le previzualiza:   
Pagina de start a forumului  » Despre limbajele de programare  » Fise de lucru JavaScrip - js8
Creaza un subiect nou   Raspunde la subiect Ora este GMT + 2 ore
Pagina 1 din 1

 
Mergi direct la:  
Nu puteti crea un subiect nou in acest forum
Nu puteti raspunde in subiectele acestui forum
Nu puteti modifica mesajele proprii din acest forum
Nu puteti sterge mesajele proprii din acest forum
Nu puteti vota in chestionarele din acest forum



Powered by phpBB © 2001, 2002 phpBB Group
Fa-ti si tu propriul forum GRATUIT, pe www.myforum.ro