Sunteți pe pagina 1din 2

Excepii

Pentru tratarea erorilor remediabile Java folosete excepiile.


Exemple de excepii pot fi :

ArrayIndexOutOfBoundsException
EOFException
FileNotFoundException
InterruptedException, etc

Excepiile 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 excepia, n ideea c vor fi
tratate de acesta.
De obicei se recomand tratarea erorilor n cadrul programului.
Excepiile sunt tratate ca obiecte.
Codul de tratare a excepiilor se afl n pachetul java.lang, mai exact n clasa java.lang.Exception.
Excepiile sunt tratate cu ajutorul a trei tipuri de instruciuni : try, catch i finally. Acestea sunt
folosite n construcii 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 instruciunilor 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 instruciunii finally


...

Instruciunea throw determin generarea unei excepii de ctre codul propriu-zis, rmnnd n
sarcina procedurii apelante s trateze excepia. Tipul excepiei poate fi predefinit (existent n
clasa java.lang.Exception) sau poate fi un tip definit special pentru o anume aplicaie. Sintaxa
instruciunii 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 excepiilor existente ct i crearea de noi excepii 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: seciunea throw din declaraia funciei oblig orice rutin care apeleaz metoda VerifyRange
s conin o procedur de tratare a excepiei MyOutOfRangeException.

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