Ett undantag är ett runtime-fel. Det finns två typer av undantag som kallas kontrollerade och obekanta undantag. När ett kontrollerat undantag uppstår är Java-programmet anslutet till en extern resurs, t.ex. en fil, en enhet eller en databas. Dessa undantag kontrolleras av kompilatorn. Några exempel på kontrollerade undantag är IO-undantag och FileNotFound-undantag. När ett obekant undantag uppstår är programmet inte anslutet till någon extern resurs. Dessa undantag kontrolleras inte av kompilatorn. Några exempel på okontrollerade undantag är aritmetisk undantag och ArrayOutOfBound Exception. I den här artikeln diskuteras skillnaden mellan kontrollerat och okontrollerat undantag i Java. De nyckelskillnad mellan kontrollerat och okontrollerat undantag i Java är det ett kontrollerat undantag kontrolleras av kompilatorn medan ett obekant undantag inte kontrolleras av kompilatorn.
1. Översikt och nyckelskillnad
2. Vad är kontrollerad undantag i Java
3. Vad är Unchecked Exception i Java
4. Likheter mellan kontrollerad och avmarkerad undantag i Java
5. Jämförelse vid sida vid sida - Kontrollerad mot Unchecked Exception i Java i tabellform
6. Sammanfattning
När ett kontrollerat undantag uppstår är Java-programmet anslutet till en extern resurs. Den här resursen kan vara en enhet som skrivare. Det kan vara en fil eller en databas. Därför kontrolleras dessa undantag av kompilatorn. IO-undantaget är ett kontrollerat undantag. Det uppstår på grund av ett fel i enheten. När programmet öppnar en fil som inte existerar, kommer det att orsaka ett FileNotFound-undantag. En applikation kan anslutas till en databas som MySQL, Oracle etc. för att lagra data. Om ett fel inträffade i samband med en databas skulle det vara en SQL-undantag. Det här är några exempel på kontrollerade undantag. I alla dessa är applikationen ansluten till en yttre resurs. I kontrollerade undantag är det obligatoriskt att hantera undantaget. Om det inte hanteras, avslutas det korrekta flödet av programmet och klassfilen kommer inte att genereras. Felet kan hanteras med hjälp av försöket, fångstblocket.
Figur 01: Kontrollerad undantagshantering
Enligt ovanstående läser FileReader data från filen. Text1.txt-filen finns inte i den angivna platsen. Koden som kan ge undantaget placeras inuti försöksblocket. Meddelandet att skriva ut är 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.
Undantagade undantag kontrolleras inte av kompilatorn. Till skillnad från i kontrollerade undantag, med obekanta undantag, är inte Java-applikationen ansluten till en yttre resurs, t.ex. fil, databas eller en enhet. Några vanliga okontrollerade undantag är aritmetiska, 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 dykning "a" med noll. Se nedan koden.
Figur 02: Aritmetisk undantagshantering
Enligt ovanstående program är variabel a ett heltal värde. Variabel b är 0. Uppdelningen av dessa två tal är en skillnad med noll. Därför kommer det att medföra ett aritmetiskt undantag. Den kan hanteras med hjälp av provkroppen. De uttalanden som kan orsaka undantaget placeras inuti försöksblocket. Meddelandet som ska visas är i fångstblocket.
Se nedan stycket av koden.
int array1 [] = 1,2,3,4,5;
System.out.println (matris1 [5]);
Detta kommer att leda till ett undantag. Array1 är en grupp med 5 element. Utgångsindexet för matrisen är noll. Skriva ut 5th indexvärdet orsakar ett undantag eftersom det är obegränsat. Det maximala indexet för array1 är 4.
Figur 03: ArrayOutOfBound Exception Handling
Enligt ovanstående program har array1 5 element. Om du skriver ut elementet med index 6 kommer det att orsaka ett undantag eftersom det är obestämt. Det maximala index som kan lagras i array1 är 5. Felmeddelandet skrivs ut genom att utföra fångstblocket.
Kontrollerad vs Unchecked Exception i Java | |
Ett kontrollerat undantag är ett runtime-fel som kontrolleras av kompilatorn. | Ett obekant undantag är ett runtime-fel som inte kontrolleras av kompilatorn. |
Förekomst | |
När ett kontrollerat undantag uppstår är Java-programmet anslutet till en yttre resurs, t.ex. fil, enhet eller databas. | När ett obekant undantag uppstår är Java-programmet inte anslutet till en yttre resurs. |
exempel | |
IOException, FileNotFoundException, SQLException är några exempel på kontrollerade undantag. | Det aritmetiska undantaget, ArrayOutOfBoundException, NullPointerException är några exempel på okontrollerade undantag. |
Ett undantag är en händelse som avbryter genomförandet av programflödet. Det finns två typer av undantag. De kallas kontrollerade undantag och obekanta undantag. I denna artikel diskuterades skillnaden mellan ett kontrollerat undantag och okontrollerade undantag. Skillnaden mellan kontrollerat och okontrollerat undantag i Java är att ett kontrollerat undantag kontrolleras av kompilatorn medan ett obekant undantag inte kontrolleras av kompilatorn. Eftersom undantag påverkar det korrekta flödet av programexekvering är det en bra programmeringspraxis att hantera dem.
1.Point, handledning. "Java-undantag"., Tutorials Point, 8 jan 2018. Tillgänglig här
2.nareshtechnologies. Kontrollerad vs Unchecked Exception || Core Java Vanliga frågor Videor, Naresh i Technologies, 31 december 2016. Tillgänglig här