Descriere: Modalitati de tratare a erorilor
Download:
Autor: Anonim
Sursa (Link-ul oficial): Propria parere: Folositor.
Tutorialul:
Uneori aveţi nevoie de a afişa mesaje de eroare mai inteligibile (sau în alte limbi) decât cele generate standard de către JavaScript. Pentru aceasta se folosesc instrucţiunile try/throw/catch. Exemplu:
Cod: Selectaţi tot
<body>
<script language="JavaScript" type="text/javascript">
<!--
raspuns = prompt("Introduceti un numar:", "")
try {
if (!raspuns || isNaN(raspuns)) {
throw new Error("Nu este un numar valid")
}
alert("Radacina patrata a numarului " + raspuns + " este " + Math.sqrt(raspuns))
}
catch(errMsg) {
alert(errMsg.message)
}
-->
</script>
</body> raspuns = prompt("Introduceti un numar:", "")
Afişeaza un prompter normal în care se cere să introduceţi un număr.
try
{
Dacă nu a fost introdus un număr se preia mesajul iniţial de eroare şi se schimbă cu altul. În cadrul instrucţiunii try se verifică dacă utilizatorul a introdus sau nu un număr.
if (!raspuns || isNaN(raspuns))
{
throw new Error("Nu este un numar valid")
}
Aici se verifică dacă utilizatorul a introdus ceva "!raspuns" sau dacă a introdus orice altceva în afară de număr "isNaN(raspuns)"
Dacă expresia "!raspuns" este adevarată, atunci utilizatorul nu a introdus nimic (a apăsat direct enter).
Metoda JavaScript isNaN verifică dacă parametrul care îi este pasat este sau nu numeric (Not a Number). Dacă isNaN() returnează adevărat, ştim că valoarea nu este validă. Oricare ar fi cazul, trebuie să "lansăm" (throw) o eroare: în acest context îi vom spune utilizatorului că nu a introdus un număr. Odată ce o eroare a fost lansată, JavaScript iese din blocul de cod try şi caută instrucţiunea catch (prinde) corespunzătoare. Se sare peste toate celelalte linii de cod aflate între throw şi catch.
alert("Radacina patrata a numarului " + raspuns + " este " + Math.sqrt(raspuns))
În cazul în care utilizatorul a introdus corect un număr se afişează rădăcina pătrată a numărului.
}
Aici se închide blocul try.
catch(errMsg)
{
alert(errMsg.message)
}
Aici, în cazul în care a fost lansată o eroare se utilizează blocul catch. Variabila errMsg este pasată ca parametru, şi este afişată partea de mesaj (message) a erorii. Codul din cadrul blocului catch nu va fi executat decât dacă în timpul execuţiei a fost lansată o eroare.
Acest cod are şi o parte opţională, şi anume după catch se mai poate pune un bloc final {} care poate conţine instrucţiuni care se execută indiferent dacă blocul try lansează sau nu o eroare.
