Agora
Media
Libraria Byblos



AgoraNews  





PC Magazine Ro  




NET Report   




Ginfo   




agora ON line   





PC Concrete   





Liste de discuții   




Cartea de oaspeți   




Mesaje   





Agora   








Clic aici
PC Report - ultimul numar aparut


IPRO - PC Magazine Romania, Aprilie 2003
SOLUȚII PENTRU PROGRAMATORII ȘI DESIGNERII WEB

Servicii web realizate cu ASP.NET
Tratarea excepțiilor

Mircea Scărlătescu

Odată cu impunerea programării orientate pe obiecte au apărut o serie de concepte care au transformat modul în care aplicațiile sunt gândite și implementate. Vom parcurge aici conceptul de tratare a excepțiilor, o componentă de bază a oricărei aplicații. Termenii excepție și eroare sunt similari în limbajul programatorilor, ei desemnând o situație limită, în care programul nu mai poate funcționa corect. Desigur, aceste situații trebuie să fie intuite de programator, și să fie tratate ca atare, generându-se o avertizare și adaptarea la noile condiții de execuție. Java are implementat un sistem de tratare a erorilor bine pus la punct și platforma .NET a preluat aceste concepte și pentru noile sale limbaje C# și VisualBasic.NET. Tratarea excepțiilor a intrat astfel în atenția programatorilor Web prin impelmentările Java (în JSP, Servletts) și mai nou ASP.NET; ne vom ocupa în cele ce urmează de tratarea excepțiilor în ASP.NET și VisualBasic.NET
Vom prezenta un serviciu web care încorporează mecanismul de tratare a erorilor. Considerăm următoarea metodă:

< WebMethod()> Public Function ExceptionExample(ByVal value As Integer) As Integer

Dim exampleArray(99) As Integer
Dim i As Integer
For i = 0 To 99
exampleArray(i) = 100 - i
Next
Dim result As Integer
result = 0
For i = 0 To 99
If exampleArray(i) = value
Then
result = i + 1
End If
Next
Try
If result = 0 Then
Throw New Exception(“Numarul nu a fost gasit")
Else
Return result
End If
Catch e As Exception
Return -1
End Try
End Function


Metoda realizează o căutare a unui număr într-un vector, după un algoritm ușor de înțeles din codul de mai sus. Variabila result va conține fie poziția valorii parametrului în vector, fie -1 (dacă nu a fost găsită valoarea). Aici intervine mecanismul de tratare a erorilor: în cadrul blocului try-catch se aruncă o excepție (dacă este cazul) prin instrucțiunea:

Throw New Exception(“Numarul nu a fost gasit")

Această secvență instanțiază un obiect de tipul Exception. O prezentare completă a acestei clase este disponibilă în documentația MSDN. Cuvântul cheie Throw, specifică faptul că se aruncă o excepție, care trebuie să fie "prinsă" de către program. Acest lucru se realizează prin cuvântul cheie catch.

Catch e As Exception

Prin intermediul variabilei "e" putem să consultăm proprietățile obiectului de tip excepție care a fost aruncat (mesajul excepției, stivă, etc). Trebuie subliniat că se pot arunca mai multe excepții în cadrul unui bloc try, care pot fi "prinse" și tratate similar ca mai sus. Structura generală pentru blocuri de tratare a erorilor este:

Try
Catch e As Exception
Finally
End Try

Cuvântul cheie Finally specifică faptul că urmează o secvență de cod care se execută după execuția codului din blocul catch. Ea poate să lipsească din cadrul sintaxei. Un alt aspect important este faptul că un bloc try poate să fie urmat de mai multe blocuri catch fiecare dintre aceste blocuri fiind însărcinat să trateze câte un tip de excepție. .NET conține o ierarhie de clase de tip excepție sistem ce pot fi aruncate. Lista completă a acestora este disponibilă în documentații. De asemenea, o aplicație profesională va avea întodeauna implementată propria ierarhie de clase care tratează excepții. Pentru programarea unei aplicații de dimensiuni mari se recomandă implementarea a cât mai multor clase de tratare a erorilor, pentru ca aplicația să devină cât mai fiabilă.

 


PC Magazine Ro | CD ROM | Redactia | Abonamente | CautareArhive

Copyright © 1999-2002 Agora Media.

[email protected]

LG - LifeŽs Good

www.agora.ro

deltafri

Concurs de Grafica Digitala si Web Design

www.agora.ro

www.agora.ro