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 {

1
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\mânând î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 cât [i crearea de noi excep]ii se


realizeaz\ prin extinderea clasei java.lang.Exception
Exemplu
public class MyOutOfRangeException extends Exception {
public MyOutOfRangeException () {
super();
}

2
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