Nøgleforskel - Kontrolleret versus ikke-markeret undtagelse i Java
En undtagelse er en runtime-fejl. Der er to typer undtagelser kendt som afkrydsede og ukontrollerede undtagelser. Når en markeret undtagelse opstår, er Java-applikationen forbundet til en ekstern ressource, såsom en fil, enhed eller database. Disse undtagelser kontrolleres af kompilatoren. Nogle eksempler på kontrollerede undtagelser er IO-undtagelse og FileNotFound-undtagelse. Når der opstår en ikke-markeret undtagelse, er applikationen ikke forbundet til nogen ekstern ressource. Disse undtagelser kontrolleres ikke af kompilatoren. Nogle eksempler på ukontrollerede undtagelser er aritmetisk undtagelse og ArrayOutOfBound-undtagelse. Denne artikel diskuterer forskellen mellem kontrolleret og ukontrolleret undtagelse i Java. Hovedforskellen mellem markeret og ikke-markeret undtagelse i Java er, at en markeret undtagelse kontrolleres af compileren, mens en ikke-markeret undtagelse ikke kontrolleres af compileren.
INDHOLD
1. Oversigt og nøgleforskel
2. Hvad er kontrolleret undtagelse i Java
3. Hvad er ukontrolleret undtagelse i Java
4. Ligheder mellem kontrolleret og ukontrolleret undtagelse i Java
5. Sammenligning ved siden af hinanden - Kontrolleret versus ukontrolleret undtagelse i Java i tabelform
6. Resumé
Hvad er kontrolleret undtagelse i Java?
Når der vises 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 kompilatoren. IO-undtagelse er en kontrolleret undtagelse. Det opstår på grund af en fejl i enheden. Når applikationen får adgang til en fil, der ikke findes, vil det medføre en FileNotFound-undtagelse. En applikation kan forbindes 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. Dette er nogle eksempler på kontrollerede undtagelser. I alle disse er applikationen forbundet til en ydre ressource. I afkrydsede undtagelser er det obligatorisk at håndtere undtagelsen. Hvis det ikke håndteres, afsluttes den korrekte strøm af programmet,og klassefilen genereres ikke. Fejlen kan håndteres ved hjælp af prøve, fangstblokken.
Figur 01: Kontrolleret undtagelseshåndtering
I henhold til ovenstående læste FileReader data fra filen. Text1.txt-filen findes ikke på den angivne placering. Koden, der kan give undtagelsen, er placeret inde i prøveblokken. Beskeden, der skal udskrives, er inde i fangsten. Da der ikke er nogen fil, der hedder text1.txt, forårsager dette en FileNotFoundException. Ved at bruge undtagelseshåndtering udskrives beskeden på skærmen.
Hvad er ukontrollerede undtagelser i Java?
Ikke markerede undtagelser kontrolleres ikke af kompilatoren. I modsætning til markerede undtagelser er Java-applikationen med ikke-markerede undtagelser ikke forbundet til en ydre ressource som fil, database eller en enhed. Nogle almindelige ikke-markerede undtagelser er aritmetiske undtagelser, ArrayOutOfBound og NullPointer.
int a = 10, b = 0;
int div = a / b;
System.out.println (div);
Dette vil medføre en aritmetisk undtagelse på grund af dykning 'a' nul. Se nedenstående kode.
Figur 02: Håndtering af aritmetiske undtagelser
I henhold til ovenstående program er variabel a et heltal. Variabel b er 0. Opdelingen af disse to tal er en division med nul. Derfor vil det medføre en aritmetisk undtagelse. Det kan håndteres ved hjælp af try-catch-blok. De udsagn, der kan forårsage undtagelsen, er placeret inde i prøveblokken. Beskeden, der skal vises, er i fangstblokken.
Se nedenstående stykke af koden.
int array1 = {1,2,3,4,5};
System.out.println (array1 [5]);
Dette vil medføre en undtagelse. Array1 er en matrix med 5 elementer. Startindekset for arrayet er nul. Udskrivning af 5 th indeksværdi forårsager en undtagelse, fordi det er ude af bundet. Det maksimale indeks for array1 er 4.
Figur 03: ArrayOutOfBound-undtagelseshåndtering
I henhold til ovenstående program har array1 5 elementer. Udskrivning af elementet med indeks 6 vil forårsage en undtagelse, fordi det er uden for båndet. Det maksimale indeks, der kan lagres i array1, er 5. Fejlmeddelelsen udskrives ved at udføre fangstblokken.
Hvad er ligheden mellem kontrolleret og ukontrolleret undtagelse i Java
Både markeret og ukontrolleret undtagelse i Java er undtagelsestyper i Java
Hvad er forskellen mellem kontrolleret og ukontrolleret undtagelse i Java?
Diff artikel midt foran bordet
Kontrolleret mod ikke-markeret undtagelse i Java |
|
En kontrolleret undtagelse er en runtime-fejl, der kontrolleres af compileren. | En ikke-markeret undtagelse er en runtime-fejl, der ikke kontrolleres af compileren. |
Hændelse | |
Når en markeret undtagelse opstår, er Java-applikationen forbundet til en ydre ressource, såsom fil, enhed eller en database. | Når der opstår en ikke-markeret undtagelse, er Java-applikationen ikke forbundet til en ydre ressource. |
Eksempler | |
IOException, FileNotFoundException, SQLException er nogle eksempler på kontrollerede undtagelser. | Den aritmetiske undtagelse, ArrayOutOfBoundException, NullPointerException er nogle eksempler på ikke-markerede undtagelser. |
Resumé - Kontrolleret vs ikke-markeret undtagelse i Java
En undtagelse er en begivenhed, der afbryder udførelsen af programflowet. Der er to typer undtagelser. De kaldes kontrollerede undtagelser og ikke-markerede undtagelser. Denne artikel diskuterede forskellen mellem en kontrolleret undtagelse og ukontrollerede undtagelser. Forskellen mellem markeret og ikke-markeret undtagelse i Java er, at en markeret undtagelse kontrolleres af compileren, mens en ikke-markeret undtagelse ikke kontrolleres af compileren. Da undtagelser påvirker den korrekte strøm af programudførelse, er det en god programmeringspraksis at håndtere dem.