Key Difference – Checked vs Unchecked Exception in Java
Et unntak er en kjøretidsfeil. Det er to typer unntak kjent som avmerket og uavmerket unntak. Når et avkrysset unntak oppstår, kobles Java-applikasjonen til en ekstern ressurs som en fil, enhet eller database. Disse unntakene kontrolleres av kompilatoren. Noen eksempler på sjekkede unntak er IO-unntak og FileNotFound-unntak. Når et ukontrollert unntak oppstår, er ikke applikasjonen koblet til noen ekstern ressurs. Disse unntakene kontrolleres ikke av kompilatoren. Noen eksempler på ukontrollerte unntak er Arithmetic Exception og ArrayOutOfBound Exception. Denne artikkelen diskuterer forskjellen mellom avmerket og ukontrollert unntak i Java. Den viktigste forskjellen mellom avmerket og ukontrollert unntak i Java er at et avmerket unntak kontrolleres av kompilatoren mens et ukontrollert unntak ikke sjekkes av kompilatoren.
Hva er sjekket unntak i Java?
Når et avkrysset unntak oppstår, kobles Java-applikasjonen til en ekstern ressurs. Denne ressursen kan være en enhet som skriver. Det kan være en fil eller en database. Derfor blir disse unntakene sjekket av kompilatoren. IO-unntak er et sjekket unntak. Det oppstår på grunn av en feil i enheten. Når applikasjonen får tilgang til en fil som ikke eksisterer, vil den forårsake et FileNotFound-unntak. En applikasjon kan kobles til en database som MySQL, Oracle etc. for å lagre data. Hvis det oppstod en feil relatert til en database, ville det være et SQL-unntak. Dette er noen eksempler på sjekkede unntak. I alle disse er applikasjonen koblet til en ytre ressurs. I avkryssede unntak er det obligatorisk å håndtere unntaket. Hvis det ikke håndteres, vil den riktige flyten av programmet bli avsluttet, og klassefilen vil ikke bli generert. Feilen kan håndteres ved å bruke prøve, fangst-blokken.
Figur 01: Kontrollert unntakshåndtering
I henhold til ovenstående leste FileReader data fra filen. Text1.txt-filen finnes ikke på den angitte plasseringen. Koden som kan gi unntaket er plassert inne i try-blokken. Meldingen som skal skrives ut er inne i fangeblokken. Siden det ikke finnes noen fil som heter text1.txt, forårsaker dette en FileNotFoundException. Ved å bruke unntakshåndtering skrives meldingen ut på skjermen.
Hva er ukontrollerte unntak i Java?
Ukontrollerte unntak kontrolleres ikke av kompilatoren. I motsetning til avmerkede unntak, med ukontrollerte unntak, er ikke Java-applikasjonen koblet til en ytre ressurs som fil, database eller en enhet. Noen vanlige ukontrollerte unntak er Arithmetic, ArrayOutOfBound og NullPointer Exceptions.
int a=10, b=0;
int div=a/b;
System.out.println(div);
Dette vil forårsake et aritmetisk unntak på grunn av å dykke 'a' med null. Se koden nedenfor.
Figur 02: Håndtering av aritmetiske unntak
I følge programmet ovenfor er variabel a en heltallsverdi. Variabel b er 0. Delingen av disse to tallene er et dividert med null. Derfor vil det føre til et aritmetisk unntak. Det kan håndteres ved hjelp av try-catch-blokk. Utsagnene som kan forårsake unntaket er plassert inne i try-blokken. Meldingen som skal vises er i fangstblokken.
Se delen av koden nedenfor.
int array1={1, 2, 3, 4, 5};
System.out.println(array1[5]);
Dette vil føre til et unntak. Matrise1 er en matrise med 5 elementer. Startindeksen til matrisen er null. Utskrift av 5th indeksverdi forårsaker et unntak fordi den er utenfor grensen. Den maksimale indeksen til array1 er 4.
Figur 03: ArrayOutOfBound-unntakshåndtering
I følge programmet ovenfor har array1 5 elementer. Utskrift av elementet med indeks 6 vil forårsake et unntak fordi det er utenfor bindingen. Maksimal indeks som kan lagres i array1 er 5. Feilmeldingen skrives ut ved å utføre catch-blokken.
Hva er likheten mellom avmerket og ukontrollert unntak i Java
Både avmerket og ukontrollert unntak i Java er unntakstyper i Java
Hva er forskjellen mellom avmerket og ukontrollert unntak i Java?
Checked vs Unchecked Exception in Java |
|
Et sjekket unntak er en kjøretidsfeil som kontrolleres av kompilatoren. | Et umerket unntak er en kjøretidsfeil som ikke kontrolleres av kompilatoren. |
Forekomst | |
Når et avkrysset unntak oppstår, kobles Java-applikasjonen til en ytre ressurs som fil, enhet eller database. | Når et uavmerket unntak oppstår, er ikke Java-applikasjonen koblet til en ytre ressurs. |
Eksempler | |
IOException, FileNotFoundException, SQLException er noen eksempler på sjekkede unntak. | Det aritmetiske unntaket, ArrayOutOfBoundException, NullPointerException er noen eksempler på ukontrollerte unntak. |
Summary – Checked vs Unchecked Exception in Java
Et unntak er en hendelse som avbryter gjennomføringen av programflyten. Det er to typer unntak. De kalles sjekkede unntak og ukontrollerte unntak. Denne artikkelen diskuterte forskjellen mellom et sjekket unntak og ukontrollerte unntak. Forskjellen mellom avmerket og ukontrollert unntak i Java er at et avmerket unntak kontrolleres av kompilatoren mens et ukontrollert unntak ikke sjekkes av kompilatoren. Siden unntak påvirker riktig flyt av programkjøring, er det en god programmeringspraksis å håndtere dem.