Tratarea excepțiilor

De la WikiLabs
Versiunea din 23 august 2012 08:14, autor: Rhobincu (discuție | contribuții) (Pagină nouă: În Java, excepțiile reprezintă o întrerupere în execuția normală a algoritmului. Acestea sunt folosite pentru a administra problemele apărute în timpul execuției și a lua m...)
(dif) ← Versiunea anterioară | Versiunea curentă (dif) | Versiunea următoare → (dif)
Jump to navigationJump to search

În Java, excepțiile reprezintă o întrerupere în execuția normală a algoritmului. Acestea sunt folosite pentru a administra problemele apărute în timpul execuției și a lua măsurile de rigoare pentru a relua programul din locul în care este posibil. Excepțiile, ca orice altceva în Java, sunt obiecte. Clasa de bază pentru orice tip de excepție este java.lang.Throwable.

Din clasa Throwable se extind două alte clase:

  • java.lang.Error - un tip de excepție care descrie o problemă gravă în execuția programului și din cauza căreia aplicația nu mai poate continua; aceste tipuri de excepții nu pot fi administrate.
  • java.lang.Exception - o clasă care descrie excepții pe care o aplicație le poate administra și după care execuția se poate relua în mod corect;

Generarea excepțiilor

O excepție este generată (aruncată) folosind cuvântul cheie throw:

public void setAge(int _age){
    if(_age < 0 || _age > 150){
        Error _e = new Error("Invalid age " + _age);
        throw _e;
    }

    age = _age;
}

O excepție odată generată, execuția normală a programului se întrerupe și se reia doar într-un bloc catch asociat acelui tip de excepție (vezi #tratarea excepțiilor). Spre exemplu, în situația de mai sus, după ce eroarea a fost generată folosind cuvântul cheie throw, asignarea age = _age; nu se mai execută.

Tratarea excepțiilor

În anumite situații, excepțiile întrerup definitiv execuția programului. Aceste tipuri de excepții nu se administrează (cele extinse din clasa Error). Există totuși excepții care pot fi tratate, cele extinse din clasa Exception. Acestea sunt de două tipuri: