Sunteți pe pagina 1din 3

Excep]ii

Pentru tratarea erorilor remediabile Java folose[te excep]iile. Exemple de excep]ii pot fi : ArrayIndexOutOfBoundsException EOFException FileNotFoundException InterruptedException, etc Excep]iile pot fi tratate n Java n mai multe moduri : pot fi ignorate ; pot fi tratate direct n codul n care apar; pot fi transmise codului ce a apelat metoda care a generat excep]ia, n ideea c\ vor fi tratate de acesta. De obicei se recomand\ tratarea erorilor n cadrul programului. Excep]iile sunt tratate ca obiecte. Codul de tratare a excep]iilor se afl\ n pachetul java.lang, mai exact n clasa java.lang.Exception. Excep]iile sunt tratate cu ajutorul a trei tipuri de instruc]iuni : try, catch [i finally. Acestea sunt folosite n construc]ii de forma:
try { instructiuni care pot genera o exceptie } catch (ExceptionType1 e) { prelucrarea exceptiei de tipul 1 } catch (ExceptionType2 e) { prelucrarea exceptiei de tipul 2 } finally { prelucrarea tuturor celorlalte tipuri de exceptii }

Exemplu de folosire a instruc]iunilor try - catch

public class ExExceptie { public static void main (String args[]) { int[] myArray = new int[10]; try { System.out.println("Inainte de o atribuire valida in matrice..."); myArray[0] = 100; System.out.println("Inainte de o atribuire invalida in matrice..."); myArray[100] = 100; System.out.println("Dupa o exceptie in matrice"); } catch (ArrayIndexOutOfBoundsException e) { System.out.println("Eroare de indice in matrice!"); } } }

Exemplu de folosire a instruc]iunii finally


...

Instruc]iunea throw determin\ generarea unei excep]ii de c\tre codul propriu-zis, r\mnnd n sarcina procedurii apelante s\ trateze excep]ia. Tipul excep]iei poate fi predefinit (existent n clasa java.lang.Exception) sau poate fi un tip definit special pentru o anume aplica]ie. Sintaxa instruc]iunii este :
throw (Obiect_Exceptie)

Exemplu:
import java.net.*; public class MyMain { public static void main (String args[]) { MalformedURLException e; e = new MalformedURLException(Adresa URL incorecta!); throw(e); }

Personalizarea excep]iilor existente ct [i crearea de noi excep]ii se realizeaz\ prin extinderea clasei java.lang.Exception

Exemplu
public class MyOutOfRangeException extends Exception { public MyOutOfRangeException () { super(); } public MyOutOfRangeException (String s) { super(s); } } public class VerifyRange { MyOutOfRangeException e; public void verifyIntRange(int value, int low,int high) throws MyOutOfRangeException { if ((value < low) || (value > high)) { e = new MyOutOfRangeException("number " + value + " out of range"); throw(e); } } }

Obs: sec]iunea throw din declara]ia func]iei oblig\ orice rutin\ care apeleaz\ metoda VerifyRange s\ con]in\ o procedur\ de tratare a excep]iei MyOutOfRangeException.

S-ar putea să vă placă și