Tratarea exceptiilor

Trimis la data: 2010-01-11 Materia: Electronica Nivel: Facultate Pagini: 8 Nota: / 10 Downloads: 0
Autor: Andrei Comanescu Dimensiune: 23kb Voturi: Tipul fisierelor: doc Acorda si tu o nota acestui seminar: 1 2 3 4 5 6 7 8 9 10
vezi mai multe detalii vezi mai putine detalii
Raporteaza o eroare
O exceptie este un identificator PL/SQL asociat unei conditii anormale aparute in timpul executiei unui bloc PL/SQL. Invocarea unei exceptii are ca efect terminarea blocului, deci iesirea din blocul PL/SQL. Pentru evitarea unor situatii de intrerupere anormala, exceptia poate fi captata si poate fi specificata o rutina de tratare a acesteia.
Referate similare: Nu exista seminarii similare

O exceptie poate fi invocata in doua moduri:
a.Apare o eroare Oracle si exceptia asociata ei este automat invocata
b.Exceptia poate fi invocata in mod explicit prin instructiunea RAISE in cadrul blocului.

Captarea unei exceptii
Daca exceptia este invocata in sectiunea executabila a unui bloc se cauta in cadrul sectiunii de tratare a exceptiilor o rutina de tratare asociata. Daca PL/SQL poate trata exceptia, ea nu este propagata in blocul exterior sau in mediul apelant, caz in care se considera ca executia blocului s-a desfasurat cu succes.

Propagarea unei exceptii
Daca nu exista o rutina pentru tratarea ei, exceptia este propagata in mediul apelant, caz in care executia blocului se termina cu esec.
Sa se afiseze salariul angajatului cu prenumele John. Sa se trateze eroare aparuta in cazul in care exista mai multi angajati cu acelasi nume (interogarea SQL din bloc intoarce mai multe inregistrari).

2. Tratarea exceptiilor non-predefinite Oracle Server
Se poate capta o eroare a Serverului Oracle ce nu are asociata o exceptie predefinita asociindu-i un nume codului de eroare returnat sau folosind clauza WHEN OTHERS. In PL/SQL, directiva EXCEPTION_INIT determina compilatorul sa asocieze un nume de exceptie unui numar (cod) de eroare standard a Serverului Oracle. Aceasta permite referirea erorii standard prin nume si scrierea unei rutine de tratare a ei.

Tratarea acestor erori se realizeaza in 3 pasi:
1) Declararea exceptiei: se face in zona DECLARE a blocului
NUME_EXCEPTIE EXCEPTION;
2) Asocierea codului erorii cu exceptia declarata anterior: se realizeaza tot in zona DECLARE prin utilizarea directivei de compilare EXCEPTION_INIT:PRAGMA EXCEPTION_INIT(NUME_EXCEPTIE, COD_EROARE);
Unde COD_EROARE este un cod de eroare standard Oracle;
3) Tratarea exceptiei in zona EXCEPTION a blocului:
EXCEPTION
WHEN NUME_EXCEPTIE THEN .........;

Se pot utiliza 2 atribute pentru a gestiona erorile aparute:
SQLCODE - returneaza codul numeric al erorii. Poate avea urmatoarele valori:0 - nu a aparut nici o exceptie;
1 - este o exceptie definita de utilizator;
+100 -exceptia NO_DATA_FOUND;
un numar negativ - o eroare Oracle Server;
SQLERRM - returneaza mesajul asociat erorii.
Aceste atribute pot fi incarcate in variabile si inserate intr-o tabela de erori pentru vizualizare si verificare ulterioara.

Exemplu:Sa se insereze in tabela departamente un nou departament cu ID-ul 200, fara a preciza denumirea acestuia. In acest caz va apare o eroarea cu codul ORA-01400 prin care programatorul este avertizat de incalcarea unei restrictii de integritate.

Stiri
  • pag. 1
  • pag. 2
  • pag. 3
  • pag. 4
  • pag. 5
  • pag. 6
  • pag. 7
  • pag. 8

Nota explicativa
Referatele si lucrarile oferite de Referate.ro au scop educativ si orientativ pentru cercetare academica.

Iti recomandam ca referatele pe care le downloadezi de pe site sa le utilizezi doar ca sursa de inspiratie sau ca resurse educationale pentru conceperea unui referat nou, propriu si original.

Referat.ro te invata cum sa faci o lucrare de nota 10!
Linkuri utile
Programeaza-te online la salonul favorit Descarca gratuit aplicatiile pentru iOS si Android Materiale educative Jocuri Cele mai tari jocuri de pe net Referate scoala Resurse, lucrari, referate materiale pentru lucrari de nota 10
Toate imaginile, textele sau alte materiale prezentate pe site sunt proprietatea referat.ro fiind interzisa reproducerea integrala sau partiala a continutului acestui site pe alte siteuri sau in orice alta forma fara acordul scris al referat.ro. Va rugam sa consultati Termenii si conditiile de utilizare a site-ului. Informati-va despre Politica de confidentialitate. Daca aveti intrebari sau sugestii care pot ajuta la dezvoltarea site-ului va rugam sa ne scrieti la adresa webmaster@referat.ro.