Belangrijk verschil - Aangevinkte versus niet-gecontroleerde uitzondering in Java
Een uitzondering is een runtime-fout. Er zijn twee soorten uitzonderingen, de zogenaamde gecontroleerde en niet-gecontroleerde uitzonderingen. Wanneer een gecontroleerde uitzondering optreedt, wordt de Java-toepassing verbonden met een externe bron, zoals een bestand, apparaat of database. Deze uitzonderingen worden gecontroleerd door de compiler. Enkele voorbeelden van gecontroleerde uitzonderingen zijn IO-uitzondering en FileNotFound-uitzondering. Wanneer een ongecontroleerde uitzondering optreedt, is de toepassing niet verbonden met een externe bron. Deze uitzonderingen worden niet gecontroleerd door de compiler. Enkele voorbeelden van niet-aangevinkte uitzonderingen zijn Arithmetic Exception en ArrayOutOfBound Exception. Dit artikel bespreekt het verschil tussen aangevinkte en niet-gecontroleerde uitzondering in Java. Het belangrijkste verschil tussen gecontroleerde en niet-gecontroleerde uitzondering in Java is dat een gecontroleerde uitzondering wordt gecontroleerd door de compiler, terwijl een niet-gecontroleerde uitzondering niet wordt gecontroleerd door de compiler.
Wat is een gecontroleerde uitzondering in Java?
Wanneer een gecontroleerde uitzondering optreedt, is de Java-toepassing verbonden met een externe bron. Deze bron kan een apparaat zijn, zoals een printer. Het kan een bestand of een database zijn. Daarom worden die uitzonderingen gecontroleerd door de compiler. IO-uitzondering is een gecontroleerde uitzondering. Het treedt op vanwege een fout in het apparaat. Wanneer de toepassing toegang heeft tot een bestand dat niet bestaat, zal het een FileNotFound-uitzondering veroorzaken. Een applicatie kan worden aangesloten op een database zoals MySQL, Oracle etc. om gegevens op te slaan. Als er een fout is opgetreden met betrekking tot een database, zou dit een SQL-uitzondering zijn. Dat zijn enkele voorbeelden van gecontroleerde uitzonderingen. In al deze is de applicatie verbonden met een externe bron. In aangevinkte uitzonderingen is het verplicht om de uitzondering af te handelen. Als het niet wordt afgehandeld, wordt de juiste stroom van het programma beëindigd en wordt het klassenbestand niet gegenereerd. De fout kan worden afgehandeld met behulp van het try, catch-blok.
Figuur 01: Afhandeling van uitzonderingen gecontroleerd
Volgens het bovenstaande leest de FileReader gegevens uit het bestand. Het bestand text1.txt bestaat niet op de opgegeven locatie. De code die de uitzondering kan geven, wordt in het try-blok geplaatst. Het bericht dat moet worden afgedrukt, bevindt zich in het catch-blok. Aangezien er geen bestand is met de naam text1.txt, veroorzaakt dit een FileNotFoundException. Door uitzonderingsbehandeling te gebruiken, wordt het bericht op het scherm afgedrukt.
Wat zijn niet-gecontroleerde uitzonderingen in Java?
Niet-aangevinkte uitzonderingen worden niet gecontroleerd door de compiler. In tegenstelling tot aangevinkte uitzonderingen, is de Java-toepassing bij niet-aangevinkte uitzonderingen niet verbonden met een externe bron zoals een bestand, database of een apparaat. Enkele veelvoorkomende ongecontroleerde uitzonderingen zijn Arithmetic, ArrayOutOfBound en NullPointer Exceptions.
int a=10, b=0;
int div=a/b;
System.out.println(div);
Dit veroorzaakt een rekenkundige uitzondering vanwege het duiken van 'a' bij nul. Raadpleeg de onderstaande code.
Figuur 02: Afhandeling van rekenkundige uitzonderingen
Volgens het bovenstaande programma is variabele a een geheel getal. Variabele b is 0. De deling van deze twee getallen is een deling door nul. Daarom zal het een rekenkundige uitzondering veroorzaken. Het kan worden afgehandeld met behulp van een try-catch-blok. De instructies die de uitzondering kunnen veroorzaken, worden in het try-blok geplaatst. Het bericht dat moet worden weergegeven, bevindt zich in het catch-blok.
Verwijs naar het onderstaande stuk van de code.
int array1={1, 2, 3, 4, 5};
System.out.println(array1[5]);
Dit zal een uitzondering veroorzaken. De array1 is een array met 5 elementen. De startindex van de array is nul. Het afdrukken van de indexwaarde 5th veroorzaakt een uitzondering omdat deze buiten het bereik is. De maximale index van de array1 is 4.
Figuur 03: Afhandeling van ArrayOutOfBound-uitzonderingen
Volgens het bovenstaande programma heeft de array1 5 elementen. Het afdrukken van het element met index 6 zal een uitzondering veroorzaken omdat het out-of-bound is. De maximale index die kan worden opgeslagen in array1 is 5. De foutmelding wordt afgedrukt door het catch-blok uit te voeren.
Wat is de overeenkomst tussen aangevinkte en niet-gecontroleerde uitzondering in Java
Zowel de aangevinkte als de niet-gecontroleerde uitzondering in Java zijn uitzonderingstypen in Java
Wat is het verschil tussen gecontroleerde en niet-gecontroleerde uitzondering in Java?
Aangevinkte versus niet-aangevinkte uitzondering in Java |
|
Een gecontroleerde uitzondering is een runtime-fout die wordt gecontroleerd door de compiler. | Een niet-gecontroleerde uitzondering is een runtime-fout die niet wordt gecontroleerd door de compiler. |
Voorkomen | |
Wanneer een gecontroleerde uitzondering optreedt, wordt de Java-toepassing verbonden met een externe bron zoals een bestand, apparaat of een database. | Wanneer een ongecontroleerde uitzondering optreedt, is de Java-toepassing niet verbonden met een externe bron. |
Voorbeelden | |
IOException, FileNotFoundException, SQLException zijn enkele voorbeelden van gecontroleerde uitzonderingen. | De rekenkundige uitzondering, ArrayOutOfBoundException, NullPointerException zijn enkele voorbeelden van ongecontroleerde uitzonderingen. |
Samenvatting – Aangevinkt versus niet-gecontroleerde uitzondering in Java
Een uitzondering is een gebeurtenis die de uitvoering van de programmastroom onderbreekt. Er zijn twee soorten uitzonderingen. Ze worden gecontroleerde uitzonderingen en ongecontroleerde uitzonderingen genoemd. In dit artikel wordt het verschil besproken tussen een gecontroleerde uitzondering en niet-gecontroleerde uitzonderingen. Het verschil tussen gecontroleerde en niet-gecontroleerde uitzondering in Java is dat een gecontroleerde uitzondering wordt gecontroleerd door de compiler, terwijl een niet-gecontroleerde uitzondering niet wordt gecontroleerd door de compiler. Aangezien uitzonderingen de correcte uitvoering van het programma beïnvloeden, is het een goede programmeerpraktijk om ze af te handelen.