Tri vrste iznimki na Javi

Pogreške su podjednako korisnici i programeri. Programeri očito ne žele da njihovi programi propadaju na svakom koraku, a korisnici su tako navikli da imaju greške programe za koje grubo prihvaćaju da plaćaju cijenu softvera koji će gotovo sigurno imati barem jednu pogrešku to. Java osmišljen je kako bi programeru pružio sportsku priliku u dizajniranju aplikacije bez grešaka. Postoje iznimke za koje programer zna da su mogućnost kad aplikacija komunicira s nekim resursom ili korisnikom i tim se iznimkama može rukovati. Nažalost, postoje iznimke koje programer ne može kontrolirati ili ih jednostavno previdi. Ukratko, sve iznimke nisu jednake i zato programer može razmisliti o nekoliko vrsta.

Izuzetak je događaj zbog kojeg program ne može teći u svom predviđenom izvršavanju. Postoje tri vrste izuzetaka - potvrđena iznimka, greška i iznimka vremena izvođenja.

Provjerena iznimka

Provjerene iznimke iznimke su s kojima se Java aplikacija treba boriti. Na primjer, ako aplikacija čita podatke iz datoteke, trebala bi biti u mogućnosti obraditi je

instagram viewer
FileNotFoundException. Uostalom, nema garancije da će očekivani dosje biti tamo gdje treba biti. Na datotečnom sustavu može se dogoditi bilo što, o čemu aplikacija ne bi imala pojma.

Da ovaj primjer učinimo korak dalje. Recimo da koristimo FileReader klasa za čitanje znakovne datoteke. Ako imate pogled na Definicija konstruktora FileReader u Java api vidjet ćete da se radi o potpisu metode:

javni FileReader (String fileName) baca FileNotFoundException.

Kao što vidite konstruktor posebno kaže da FileReader konstruktor može baciti FileNotFoundException. Ovo ima smisla jer je velika vjerojatnost da će naziv datoteke String će povremeno biti pogrešan. Pogledajte slijedeći kod:

javni statički void main (String [] args) { FileReader fileInput = null; // Otvorite ulaznu datoteku. fileInput = novi FileReader ("Untitled.txt"); }

Sintaktički su izjave točne, ali ovaj se kôd nikada neće sastaviti. Kompajler zna FileReader konstruktor može baciti FileNotFoundException i na ovom je iznimkom riječ o pozivu. Postoje dva izbora - prvo možemo prenijeti izuzetak iz naše metode specificiranjem a baca klauzula takođe:

javni statički void main (String [] args) baca FileNotFoundException { FileReader fileInput = null; // Otvorite ulaznu datoteku. fileInput = novi FileReader ("Untitled.txt"); }

Ili se zapravo možemo nositi s iznimkom:

javni statički void main (String [] args) { FileReader fileInput = null; probati. { // Otvorite ulaznu datoteku. fileInput = novi FileReader ("Untitled.txt"); } uhvatiti (FileNotFoundException ex) { // recite korisniku da ide i pronađe datoteku. } }

Dobro napisane Java aplikacije trebaju se moći nositi s provjerenim iznimkama.

greške

Druga vrsta iznimke poznata je kao greška. Kada se dogodi iznimka, JVM stvorit će objekt iznimke. Svi ovi predmeti potječu od Za odbaciti klase. Za odbaciti klasa ima dvije glavne podrazrede - greška i izuzetak. greška klasa označava izuzetak s kojim se aplikacija vjerojatno neće moći baviti.

Te se iznimke smatraju rijetkim. Na primjer, JVM može ponestati resursa zbog toga što hardver ne može podnijeti sve procese s kojima se mora suočiti. Aplikacija može primiti pogrešku kako bi obavijestila korisnika, ali obično će je program morati zatvoriti dok se ne riješi temeljni problem.

Izuzeci za vrijeme izvođenja

Izuzetak od vremena izvođenja događa se jednostavno zato što je programer pogriješio. Napisali ste kôd, on sve izgleda dobro kod prevoditelja i kad idete pokrenuti kod toga, pada preko njega pokušao pristupiti elementu niza koji ne postoji ili je logička pogreška uzrokovala da se metoda nazove nulom vrijednost. Ili bilo koji broj grešaka koje programer može učiniti. Ali u redu je, te iznimke primjenjujemo iscrpnim testiranjem, zar ne?

Pogreške i iznimke u vrijeme izvođenja spadaju u kategoriju neprovjerenih iznimki.

instagram story viewer