| Autor |
Mesaj |
WebMaster
Nas Legendar

Data inscrierii: 07/Ian/2010 Mesaje: 108
|
|
Modalităţi de tratare a erorilor |
|
Modalităţi de tratare a erorilor
Uneori aveţi necesitate de a afişa mesaje de eroare mai inteligibile (sau în alte limbi) decât cele generate standard de înspre JavaScript. Pentru aceasta se folosesc instrucţiunile try/throw/catch. Exemplu:
Cod:
<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>
Să încerc în continuare să explic scriptul de mai sus.
raspuns = prompt("Introduceti un numar:", "")
Afişeaza un prompter natural î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 absolut 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ă "lansam" (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 momentul execuţiei a fost lansată o eroare.
Acest cod are şi o parte opţională, şi anume mai târziu 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.
|
|
| 08/01/2010 17:29 |
|
 |
|
|
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
|
|
|