Nyckelskillnad – Markerat kontra omarkerat undantag i Java
Ett undantag är ett körtidsfel. Det finns två typer av undantag som kallas markerade och omarkerade undantag. När ett markerat undantag inträffar är Java-applikationen ansluten till en extern resurs som en fil, enhet eller databas. Dessa undantag kontrolleras av kompilatorn. Några exempel på markerade undantag är IO undantag och FileNotFound undantag. När ett omarkerat undantag inträffar är applikationen inte ansluten till någon extern resurs. Dessa undantag kontrolleras inte av kompilatorn. Några exempel på okontrollerade undantag är Arithmetic Exception och ArrayOutOfBound Exception. Den här artikeln diskuterar skillnaden mellan markerat och omarkerat undantag i Java. Den viktigaste skillnaden mellan markerat och omarkerat undantag i Java är att ett markerat undantag kontrolleras av kompilatorn medan ett omarkerat undantag inte kontrolleras av kompilatorn.
Vad är markerat undantag i Java?
När ett markerat undantag inträffar är Java-applikationen ansluten till en extern resurs. Den här resursen kan vara en enhet som en skrivare. Det kan vara en fil eller en databas. Därför kontrolleras dessa undantag av kompilatorn. IO undantag är ett kontrollerat undantag. Det uppstår på grund av ett fel i enheten. När applikationen får åtkomst till en fil som inte finns, kommer det att orsaka ett FileNotFound-undantag. En applikation kan kopplas till en databas som MySQL, Oracle etc. för att lagra data. Om ett fel uppstod relaterat till en databas skulle det vara ett SQL-undantag. Det är några exempel på kontrollerade undantag. I alla dessa är applikationen kopplad till en yttre resurs. I kryssade undantag är det obligatoriskt att hantera undantaget. Om det inte hanteras kommer det korrekta flödet av programmet att avslutas, och klassfilen kommer inte att genereras. Felet kan hanteras med hjälp av försök, fånga blocket.
Figur 01: Kontrollerad undantagshantering
Enligt ovanstående läste FileReader data från filen. Text1.txt-filen finns inte på den angivna platsen. Koden som kan ge undantag placeras i försöksblocket. Meddelandet som ska skrivas ut finns inuti fångstblocket. Eftersom det inte finns någon fil som heter text1.txt, orsakar detta en FileNotFoundException. Genom att använda undantagshantering skrivs meddelandet ut på skärmen.
Vad är omarkerade undantag i Java?
Omarkerade undantag kontrolleras inte av kompilatorn. Till skillnad från i markerade undantag, med omarkerade undantag, är Java-applikationen inte ansluten till en yttre resurs som fil, databas eller en enhet. Några vanliga omarkerade undantag är Arithmetic, ArrayOutOfBound och NullPointer-undantag.
int a=10, b=0;
int div=a/b;
System.out.println(div);
Detta kommer att orsaka ett aritmetiskt undantag på grund av att "a" dyker med noll. Se koden nedan.
Figur 02: Hantering av aritmetiska undantag
Enligt programmet ovan är variabel a ett heltalsvärde. Variabel b är 0. Divisionen av dessa två tal är en dividering med noll. Därför kommer det att orsaka ett aritmetiskt undantag. Det kan hanteras med hjälp av try-catch block. De uttalanden som kan orsaka undantaget placeras i försöksblocket. Meddelandet som ska visas finns i fångstblocket.
Se koden nedan.
int array1={1, 2, 3, 4, 5};
System.out.println(array1[5]);
Detta kommer att orsaka ett undantag. Array1 är en array med 5 element. Startindexet för arrayen är noll. Utskrift av 5th indexvärdet orsakar ett undantag eftersom det är out of bound. Det maximala indexet för array1 är 4.
Figur 03: ArrayOutOfBound undantagshantering
Enligt programmet ovan har array1 5 element. Att skriva ut elementet med index 6 kommer att orsaka ett undantag eftersom det är out of bound. Det maximala index som kan lagras i array1 är 5. Felmeddelandet skrivs ut genom att exekvera catch-blocket.
Vad är likheten mellan markerat och omarkerat undantag i Java
Både markerade och omarkerade undantag i Java är undantagstyper i Java
Vad är skillnaden mellan markerat och omarkerat undantag i Java?
Markerat vs omarkerat undantag i Java |
|
Ett markerat undantag är ett körtidsfel som kontrolleras av kompilatorn. | Ett omarkerat undantag är ett körtidsfel som inte kontrolleras av kompilatorn. |
Förekomst | |
När ett markerat undantag inträffar ansluts Java-applikationen till en yttre resurs som fil, enhet eller en databas. | När ett omarkerat undantag inträffar är Java-applikationen inte ansluten till en yttre resurs. |
Exempel | |
IOException, FileNotFoundException, SQLException är några exempel på markerade undantag. | Det aritmetiska undantaget, ArrayOutOfBoundException, NullPointerException är några exempel på omarkerade undantag. |
Sammanfattning – Markerat vs omarkerat undantag i Java
Ett undantag är en händelse som avbryter exekveringen av programflödet. Det finns två typer av undantag. De kallas kontrollerade undantag och okontrollerade undantag. Den här artikeln diskuterade skillnaden mellan ett markerat undantag och omarkerade undantag. Skillnaden mellan markerat och omarkerat undantag i Java är att ett markerat undantag kontrolleras av kompilatorn medan ett omarkerat undantag inte kontrolleras av kompilatorn. Eftersom undantag påverkar det korrekta flödet av programexekvering är det en bra programmeringspraxis att hantera dem.