TEMA 4. POO EXCEPTII JAVA. TRATAREA EXCEPTIILOR | Page 7
Exceptiile, obiectele de tip Exception, sunt exceptiile standard (soft) care
trebuie tratate de catre programele Java. Dupa cum am mai zis tratarea acestor
excepții nu este o optiune ci o constrângere. Exceptiile care pot ”scapa” netratate
descind din subclasa RuntimeException și se numesc exceptii la executie.
Metodele care sunt apelate uzual pentru un obiect excepție sunt definite în clasa
Throwable și sunt publice, astfel încat pot fi apelate pentru orice tip de exceptie.
Cele mai uzuale sunt:
• getMessage - afiseaza detaliul unei exceptii;
• printStackTrace - afiseaza informatii complete despre exceptie și
localizarea ei;
• toString - metoda mostenit a din clasa Object, care furnizeaza
reprezentarea ca sir de caractere a exceptiei. .[2]
Din Java 7 se pot prinde mai multe excepţii în acelaşi catch. [4] Sintaxa este:
try {
...}
catch(IOException | FileNotFoundException ex) {
... }
Din Java 7, a fost adăugată construcția try-with-resources, care ne permite să
declarăm resursele într-un bloc de try, cu asigurarea că resursele vor fi închise
după executarea acelui bloc. Resursele declarate trebuie să implementeze
interfața AutoCloseable.
try (PrintWriter writer = new PrintWriter(file)) {
writer.println("Hello World"); }
TRATAREA EXCEPŢIILOR
Exceptii la executie [2]
In general, tratarea excepțiilor este obligatorie în Java. De la acest principu
se sustrag însă așa numitele excepții la execuție sau, cu alte cuvinte, excepțiile care
provin strict din vina programatorului și nu generate de o anumită situație externă,
cum ar fi lipsa unui fișier.
Aceste excepții au o superclasă comună RuntimeException și în acesata categorie
sunt incluse excepțiile provocate de:
operații aritmetice ilegale (ımpartirea ıntregilor la zero);
ArithmeticException
accesarea membrilor unui obiect ce are valoarea null;
NullPointerException
accesarea eronata a elementelor unui vector.
ArrayIndexOutOfBoundsException
Exceptiile la executie pot aparea oriunde în program și pot fi extrem de
numeroare iar încercarea de ”prindere” a lor ar fi extrem de anevoioasa. Din acest