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.

webmaster@pcmagazine.ro

LG - Life´s Good

www.agora.ro

deltafri

Concurs de Grafica Digitala si Web Design

www.agora.ro

www.agora.ro