paragraph_text: Programski jezik Java za opis iznimne situacije koristi primjerke klase Throwable ili klasa koji su iz nje (direktno ili indirektno) izvedeni. Ta klasa omogućava pristup podatcima kao što su cjelokupno stanje na stogu u trenutku kada je nastala iznimna situacija, točna lokacije iznimke u kodu (koja datoteka, koji redak) za svaku metodu, poruka pogreške i pristup do “omotane” iznimke, ako takva postoji. Omogućava i pristup metodama poput metode printStackTrace za ispis svih informacija na standardni izlaz za pogreške, a klase izvedene iz klase Throwable dodavat će druge prikladne informacije ovisno o vrstama iznimnih situacija koje opisuju. Iznimku se može obraditi ovako: kôd u kojem se može očekivati iznimka stavimo u try blok iza kojeg slijedi catch blok s kôdom koji služi za obradu iznimke. Ovisno o vrstama iznimaka koje se očekuju, piše se jedan ili više catch blokova. Redoslijed tih blokova je bitan, jer se po nastupanju iznimne situacije ispitivanje provodi od prvog bloka catch. Prvi blok koji deklarira obradu iznimke koja je „kompatibilna” s nastalom iznimkom bit će odabran za izvođenje, a ako takvog nema, iznimka se propagira dalje. Nakon izvođenja catch bloka, program se nastavlja s prvom naredbom koja slijedi iza čitave try-catch strukture. Nema povratka u try blok, jer iznimka nije nalik pozivu metode. Kod više mogućih iznimaka, u slučaju da se obrada više vrsta iznimaka obavlja na identičan način, umjesto kopiranja obrade u više blokova možemo koristiti multi-catch. Neovisno o tome da li je došlo do iznimke ili ne, ponekad treba obaviti dio kôda koji će predstavlja završno čišćenje resursa. Moguć je i blok try – finally, bez bloka catch. Kôd u bloku finally uvijek će se izvršiti, neovisno je li nastala iznimka u dijelu try, ali nema koda za obradu iznimke, pa se propagira dalje i eventualna nova iznimka u finally bi maskirala originalnu. Jezici koji nemaju automatsko upravljanje memorijom, ovakav mehanizam oporavka od pogrešaka može dovesti do problema curenja memorije. Zbog toga u starijim inačicaam jezika C++ mehanizam iznimaka nije bio korišten u većoj mjeri. Budući da programski jezik Java ima automatsko skupljanje smeća, ovo više nije problem. Programer u Javi i sam može izazvati iznimnu situaciju. Za to je potrebno stvoriti prikladan primjerak razreda koji opisuje nastalu iznimnu situaciju a potom pokrenuti postupak obrade iznimne situacije uporabom ključne riječi 'throw''. Isto tako, ako je potrebno obaviti neku akciju prije no što se obrada iznimke proslijedi dalje, iznimku je moguće uhvatiti, napraviti potrebnu akciju pa ponovno aktivirati.