Rukovanje izuzecima u Javi jedan je od moćnih mehanizama za rješavanje specifičnih pogrešaka koje nastaju u kodnom nizu tijekom izvođenja. Izuzetak nije ništa drugo nego greška izvršavanja koja narušava normalan tijek aplikacije.
Obično se javlja u komadu koda, a kada se to dogodi, stvara se objekt koji predstavlja tu iznimku i bačen u metodi koja ga je izazvala. Kao rezultat, program ili aplikacija se prekidaju zbog čega se aplikacija nenormalno prekida, što se ne preporučuje. Zbog toga se trebaju riješiti ovi izuzeci i tu dolazi do izražaja mehanizam za upravljanje iznimkama.
Postoje dvije vrste izuzetaka koje postoje u Javi - Provjerena i Neprovjerena iznimka. U ovom ćemo članku detaljno razgovarati o tome što su provjerene i neprovjerene iznimke i kada ih koristiti, i na kraju, vidjet ćemo razliku između ta dva.
Ovo su iznimke koje se provjeravaju i njima se rukuje u vrijeme sastavljanja. Java definira nekoliko klasa iznimki unutar standardnog paketa java.lang, a najčešći izuzeci su potklase standardnog tipa RuntimeException.
One iznimke koje se događaju u područjima koja su izvan neposredne kontrole programa poznate su kao provjerene iznimke. Ako metoda baca označena iznimka u vrijeme sastavljanja koja se ne može sama nositi, tada mora podnijeti iznimku u a ulov blokirati ili proglasiti iznimku koristeći baca ključna riječ, inače će dati grešku u sastavljanju. Sastavljač ispituje vrstu objekta iznimke za svakoga bacanje Izjava i ako se pokazuje označenom, prevoditelj provjerava izvorni kôd da bi se uvjerio da se obrađuje iznimka u metodi u kojoj je bačena ili deklarirana kako bi se mogla dalje obrađivati..
Sve iznimke opisane u izuzetak koje su njegove izravne potklase osim za RuntimeException nazivaju se provjerenim iznimkama. Sada kada koristiti provjereni izuzetak? Možete odabrati provjerenu iznimku kada točno znate što trebate učiniti kad izuzetak događa ili kada su šanse za neuspjeh veće. Neki primjeri provjerenih izuzetaka u Java biblioteci uključuju IOException, DataAccessException, IllegalAccessException, InterruptedException, ClassNotFoundException, InvocationTargetException, itd..
Ovo su iznimke koje se ne provjeravaju u vrijeme sastavljanja. Neprovjerena iznimka predstavlja uvjet koji općenito odražava pogreške u logici programa i koji se ne mogu vratiti u vrijeme izvođenja.
Jednostavno rečeno, neprovjerena iznimka je izuzetak koji nije uhvaćen u pokušaj uhvatiti blok. Ne treba ih izričito uhvatiti. U stvari, kada se dogodi nekontrolirana iznimka, Java iznimku obrađuje automatski. Neprovjerene iznimke uglavnom nastaju zbog programskih pogrešaka, primjerice, kada se pristupi elementu izvan vezanja niza ili metodi pristupa nultom objektu. U Javi su sve iznimke ispod bacanih datoteka provjerene iznimke, dok su iznimke izravne potklase sustava greška i RuntimeException su neprovjerene iznimke.
Najbolji dio nekontrolirane iznimke je taj što ne smanjuje čitljivost koda, a pritom održava klient klijenta čistim. Neki primjeri neprovjerenih izuzetaka uključuju ArithmeticException, ClassCastException, NullPointerException, ArrayIndexOutOfBound, IllegalArgumentException, IllegalStateException, ArrayStoreException, SecurityException itd..
Provjerena i neprovjerena iznimka postoje dvije vrste izuzetaka koji postoje u Javi kako bi se osigurao normalan protok aplikacije. Obje služe istoj svrsi, a to je obrada iznimki u Javi i premda nema razlike u funkcionalnosti, ne postoji jedinstveno pravilo za određivanje kada se koristi provjerena i kada se koristi neprovjerena iznimka. Označena iznimka je izuzetak koji se provjerava u vrijeme sastavljanja, dok je neprovjerena iznimka ona koja se ne provjerava u vrijeme sastavljanja..
Provjerena iznimka odnosi se na nevažeće scenarije koji se događaju izvan neposredne kontrole programa, dok se neprovjerena iznimka odnosi na pogreške u programu ili pogreške u logici programa koje se ne mogu vratiti u vrijeme izvođenja..
Ako metoda izbaci označenu iznimku, prevoditelj će provjeriti da li metoda obrađuje tu iznimku pomoću bloka try-catch ili će odrediti iznimku pomoću ključne riječi bacanje. Ako metoda ne pruža kod za rukovanje, pokazat će pogrešku u sastavljanju. Naprotiv, program se sastavlja baš u redu jer prevoditelj ne provjerava Neprovjerene iznimke u vrijeme sastavljanja.
Izuzeci koji nisu izvedeni iz RunTimeException-a često se obrađuju, dok se iznimke događaju tijekom izvođenja rijetko se obrađuje. Provjerena iznimka događa se kada su šanse za neuspjeh previsoke. S druge strane, neprovjerena iznimka uglavnom dolazi zbog grešaka u programiranju. Sve iznimke iz klasa RuntimeException i Error su neprovjerene iznimke, dok su sve ostale pod kladama provjerene iznimke.
Neki primjeri provjerenih izuzetaka su IOException, DataAccessException, IllegalAccessException, InterruptedException, ClassNotFoundException i još mnogo toga. Primjeri neprovjerenih izuzetaka uključuju NullPointerException, ArithmeticException, ArrayIndexOutOfBound, IllegalArgumentException, IllegalStateException, ArrayStoreException, SecurityException itd..
Provjerena i neprovjerena iznimka dvije su iznimke koje postoje u Javi. Iako je funkcionalnost za obje iznimke ista, oni imaju pravičan udio u razlikama. Glavna razlika između provjerenih i neprovjerenih izuzetaka je u tome što prvu provjerava prevoditelj, dok druga izbjegava obavijest prevoditelja. Izuzeci koji se provjeravaju i njima se rukuje u vrijeme sastavljanja, označavaju se iznimke, dok iznimke koje se ne provjeravaju i kojima se ne postupa u vrijeme sastavljanja, jesu neprovjerene iznimke. Ovaj članak objašnjava što je provjereno i što je neprovjerena iznimka, kada ih koristiti i objašnjava razliku između to dvoje.