Forskellen mellem markeret og umarkeret undtagelse i Java

Indholdsfortegnelse:

Forskellen mellem markeret og umarkeret undtagelse i Java
Forskellen mellem markeret og umarkeret undtagelse i Java

Video: Forskellen mellem markeret og umarkeret undtagelse i Java

Video: Forskellen mellem markeret og umarkeret undtagelse i Java
Video: How to capture a product personalisation on Shopify using a conditional text input field 2024, Juli
Anonim

Nøgleforskel – markeret vs umarkeret undtagelse i Java

En undtagelse er en runtime-fejl. Der er to typer undtagelser kendt som kontrollerede og umarkerede undtagelser. Når der opstår en markeret undtagelse, er Java-applikationen forbundet til en ekstern ressource såsom en fil, enhed eller database. Disse undtagelser kontrolleres af compileren. Nogle eksempler på kontrollerede undtagelser er IO undtagelse og FileNotFound undtagelse. Når der opstår en umarkeret undtagelse, er applikationen ikke forbundet til nogen ekstern ressource. Disse undtagelser kontrolleres ikke af compileren. Nogle eksempler på ukontrollerede undtagelser er Arithmetic Exception og ArrayOutOfBound Exception. Denne artikel diskuterer forskellen mellem markeret og umarkeret undtagelse i Java. Den vigtigste forskel mellem markeret og umarkeret undtagelse i Java er, at en markeret undtagelse kontrolleres af compileren, mens en umarkeret undtagelse ikke kontrolleres af compileren.

Hvad er markeret undtagelse i Java?

Når der opstår en markeret undtagelse, er Java-applikationen forbundet til en ekstern ressource. Denne ressource kan være en enhed såsom printer. Det kan være en fil eller en database. Derfor kontrolleres disse undtagelser af compileren. IO undtagelse er en kontrolleret undtagelse. Det opstår på grund af en fejl i enheden. Når applikationen tilgår en fil, der ikke eksisterer, vil det forårsage en FileNotFound-undtagelse. En applikation kan kobles til en database som MySQL, Oracle osv. for at gemme data. Hvis der opstod en fejl relateret til en database, ville det være en SQL-undtagelse. Det er nogle eksempler på kontrollerede undtagelser. I alle disse er applikationen forbundet med en ydre ressource. I afkrydsede undtagelser er det obligatorisk at håndtere undtagelsen. Hvis det ikke håndteres, vil det korrekte flow af programmet blive afsluttet, og klassefilen vil ikke blive genereret. Fejlen kan håndteres ved hjælp af prøv, catch-blokken.

Forskellen mellem markeret og umarkeret undtagelse i Java
Forskellen mellem markeret og umarkeret undtagelse i Java

Figur 01: Kontrolleret undtagelseshåndtering

I henhold til ovenstående læser FileReader data fra filen. Text1.txt-filen findes ikke på den angivne placering. Koden, der kan give undtagelsen, er placeret inde i try-blokken. Beskeden til udskrivning er inde i fangeblokken. Da der ikke er nogen fil kaldet text1.txt, forårsager dette en FileNotFoundException. Ved at bruge undtagelseshåndtering udskrives beskeden på skærmen.

Hvad er ikke-markerede undtagelser i Java?

Ukontrollerede undtagelser kontrolleres ikke af compileren. I modsætning til i afkrydsede undtagelser, med umarkerede undtagelser, er Java-applikationen ikke forbundet til en ydre ressource såsom fil, database eller en enhed. Nogle almindelige umarkerede undtagelser er Arithmetic, ArrayOutOfBound og NullPointer-undtagelser.

int a=10, b=0;

int div=a/b;

System.out.println(div);

Dette vil forårsage en aritmetisk undtagelse på grund af at dykke 'a' med nul. Se nedenstående kode.

Forskellen mellem markeret og umarkeret undtagelse i Java_Figure 02
Forskellen mellem markeret og umarkeret undtagelse i Java_Figure 02

Figur 02: Håndtering af aritmetiske undtagelser

I henhold til ovenstående program er variabel a en heltalsværdi. Variabel b er 0. Delingen af disse to tal er en dividering med nul. Derfor vil det forårsage en aritmetisk undtagelse. Det kan håndteres ved hjælp af try-catch blok. Udsagn, der kan forårsage undtagelsen, placeres inde i try-blokken. Meddelelsen, der skal vises, er i fangeblokken.

Se nedenstående del af koden.

int array1={1, 2, 3, 4, 5};

System.out.println(array1[5]);

Dette medfører en undtagelse. Array1 er et array med 5 elementer. Startindekset for arrayet er nul. Udskrivning af indeksværdien på 5th forårsager en undtagelse, fordi den er uden for grænsen. Det maksimale indeks for array1 er 4.

Nøgleforskel mellem markeret og umarkeret undtagelse i Java
Nøgleforskel mellem markeret og umarkeret undtagelse i Java

Figur 03: ArrayOutOfBound undtagelseshåndtering

Ifølge ovenstående program har array1 5 elementer. Udskrivning af elementet med indeks 6 vil forårsage en undtagelse, fordi det er ude af binding. Det maksimale indeks, der kan gemmes i array1 er 5. Fejlmeddelelsen udskrives ved at udføre catch-blokken.

Hvad er ligheden mellem markeret og umarkeret undtagelse i Java

Både markeret og umarkeret undtagelse i Java er undtagelsestyper i Java

Hvad er forskellen mellem markeret og umarkeret undtagelse i Java?

Checked vs Unchecked Exception in Java

En markeret undtagelse er en runtime-fejl, der kontrolleres af compileren. En umarkeret undtagelse er en runtime-fejl, der ikke kontrolleres af compileren.
Forekomst
Når der opstår en markeret undtagelse, er Java-applikationen forbundet til en ydre ressource såsom fil, enhed eller en database. Når der opstår en umarkeret undtagelse, er Java-applikationen ikke forbundet til en ydre ressource.
Eksempler
IOException, FileNotFoundException, SQLException er nogle eksempler på markerede undtagelser. Den aritmetiske undtagelse, ArrayOutOfBoundException, NullPointerException er nogle eksempler på umarkerede undtagelser.

Oversigt – markeret vs umarkeret undtagelse i Java

En undtagelse er en hændelse, der afbryder udførelsen af programflowet. Der er to typer undtagelser. De kaldes kontrollerede undtagelser og ukontrollerede undtagelser. Denne artikel diskuterede forskellen mellem en markeret undtagelse og ikke-markerede undtagelser. Forskellen mellem markeret og umarkeret undtagelse i Java er, at en markeret undtagelse kontrolleres af compileren, mens en umarkeret undtagelse ikke kontrolleres af compileren. Da undtagelser påvirker det korrekte flow af programafvikling, er det en god programmeringspraksis at håndtere dem.

Anbefalede: