Označeno i neoznačeno izuzeće

Anonim

Rješavanje iznimke u Javi jedan je od moćnih mehanizama za rukovanje specifičnim pogreškama koje se javljaju u slijedu koda pri runtime. Iznimka je ništa drugo nego pogreška pri runtime koja narušava normalan tijek aplikacije.

Obično se događa u komadu koda, a kada se to dogodi, stvara se objekt koji predstavlja tu iznimku bačen u metodi koja ju je prouzročila. Kao rezultat toga, program ili aplikacija poremećeni uzrokuju aplikaciju prekinuti abnormalno, što se ne preporučuje. Zbog toga se te iznimke moraju riješiti i ovdje dolazi do mehanizma upravljanja iznimkom.

Postoje dvije vrste iznimaka koje postoje u Java - Checked i Unchecked Exception. U ovom ćemo članku detaljno razgovarati o tome što je provjereno i neizravno izuzeta i kada ih koristiti, a na kraju ćemo vidjeti razliku između njih.

Što je označeno iznimkom u Javi?

Ovo su iznimke koje se provjeravaju i obrađuju pri sastavljanju vremena. Java definira nekoliko odsječaka unutar standardnog paketa java.lang, a najčešći su izuzeci podrazredi standardne vrste RuntimeException.

Izuzeci koji se javljaju u područjima izvan neposredne kontrole programa poznati su kao izuzeci provjereni. Ako je metoda baca provjerena iznimka u vrijeme sastavljanja koje ne može sama podnijeti, tada mora riješiti iznimku u a ulov {} blokirati ili izjaviti iznimku pomoću baca ključne riječi, inače će dati pogrešku u kompilaciji. Kompilator ispituje vrstu iznimke objekta za svaku bacanje i ako se prikazuje da je provjereno, prevodilac provjerava izvorni kod kako bi se osiguralo da se iznimka rješava u metodi u kojoj je bačena ili je proglašena kako bi se mogla rukovati dalje.

Sve iznimke opisane u izuzetak koji su njezini izravni podrazredi osim za RuntimeException zovu se označene iznimke. Sada kada koristite provjereni izuzetak? Možete odabrati upotrebu označene iznimke kada točno znate što učiniti kada izuzetak događa ili kada su šanse za neuspjeh više. Neki primjeri provjerenih iznimki u Java knjižnici uključuju IOException, DataAccessException, IllegalAccessException, InterruptedException, ClassNotFoundException, InvocationTargetException itd.

Što je neobvezeno izuzeće u Javi?

Ovo su iznimke koje nisu provjerene prilikom sastavljanja. Neoznačena iznimka predstavlja uvjet koji općenito odražava pogreške u programskoj logici i koja se ne može oporaviti iz vremena izvođenja.

Jednostavnim pojmovima, neodvojena je iznimka iznimka koja nije uhvaćena u a pokušaj uhvatiti blok. Ne treba ih eksplicitno uhvatiti. Zapravo, kada se dogodi neobvezena iznimka, Java automatski obrađuje iznimku. Nepremijenjene iznimke najčešće se javljaju zbog programskih pogrešaka kao što su pristupanje elementu izvan polja povezivanja ili pristupa načinu nuljeg objekta. U Java, sve iznimke koje se mogu baciti provjeravaju se iznimke, dok su iznimke izravne podklase greška i RuntimeException neodgovorene su iznimke.

Najbolji dio neoznačene iznimke je taj što ne smanjuje čitljivost kodova, čuvajući kod klijenta čistim. Neki primjeri neotkrivenih izuzetaka uključuju ArithmeticException, ClassCastException, NullPointerException, ArrayIndexOutOfBound, IllegalArgumentException, IllegalStateException, ArrayStoreException, SecurityException itd.

Razlika između označene i neprovjerene iznimke

Definicija označene i neodređene iznimke

Označeno i neoznačeno Izuzetak postoje dvije vrste iznimki koje postoje u Javi kako bi se osiguralo normalno protjecanje aplikacije. Oba služe istoj svrsi koja je za rješavanje iznimaka u Java i iako nema razlike u funkcionalnosti, ne postoji jedinstveno pravilo za određivanje kada treba koristiti označeno i kada treba koristiti neotkrivenu iznimku. Označena iznimka je izuzetak koji se provjerava pri sastavljanju vremena, dok je Neobuzdan izuzetak onaj koji nije provjeren prilikom sastavljanja.

Osnove provjerenog i neprovjerenog izuzetka

Označena iznimka odnosi se na nevažeće scenarije koji se javljaju izvan neposredne kontrole programa, dok neprovjereni izuzetak odnosi se na pogreške u programu ili bugove u programskoj logici koja se ne može oporaviti od izvođenja u runtime.

Rukovanje izuzetkom

Ako metoda baca provjerenu iznimku, prevodilac će provjeriti upotrebljava li se metoda taj izuzetak pomoću blokova probnog ulova ili odrediti iznimku pomoću bacanja ključne riječi. Ako metoda ne sadrži kod za rukovanje, prikazuje se pogreška u kompilaciji. Naprotiv, program se kompilira sasvim u redu, jer prevodilac ne provjerava neobvezene iznimke u vrijeme sastavljanja.

Uzrok provjerene i neprovjerene iznimke

Iznimke koje nisu izvedene iz RunTimeException često se obrađuju, dok se iznimke nastaju pri runtime rijetko se obrađuju. Označena iznimka se događa kada su šanse za neuspjeh previsoke. S druge strane, neobvezujući izuzetak javlja se uglavnom zbog pogrešaka u programiranju. Sve iznimke u odjeljcima RuntimeException i Error su neobuzdane iznimke, dok su sve ostale pod izbacivanjem provjerene iznimke.

Primjeri provjerene i neprovjerene iznimke

Neki primjeri provjerenih iznimki su IOException, DataAccessException, IllegalAccessException, InterruptedException, ClassNotFoundException i još mnogo toga. Primjeri neodređenih izuzetaka uključuju NullPointerException, ArithmeticException, ArrayIndexOutOfBound, IllegalArgumentException, IllegalStateException, ArrayStoreException, SecurityException itd.

Izgled: usporedba tablice

Sažetak provjerene i neprovjerene iznimke

Označeno i neoznačeno izuzeće su dvije vrste iznimaka koje postoje u Javi. Iako funkcionalnost je ista za obje iznimke, oni imaju svoj pravi udio razlika. Glavna razlika između provjerenih i neprovjerenih izuzetaka je ta da prvo provjerava prevodilac, a potonji bježi od obavijesti prevodioca. Iznimke koje se provjeravaju i obrađuju u vrijeme sastavljanja označene su iznimke, dok su iznimke koje nisu provjerene i obrađene u vrijeme izrade nisu odvojene iznimke. Ovaj članak objašnjava ono što je označeno i što je neizravnjena iznimka, kada ih upotrebljavaju i objašnjava razliku između njih.