Verschil tussen gecontroleerde en niet-gecontroleerde uitzondering

De afhandeling van uitzonderingen in Java is een van de krachtige mechanismen voor het afhandelen van specifieke fouten die optreden tijdens een codesequentie tijdens runtime. Een uitzondering is niets anders dan een runtime-fout die de normale stroom van de toepassing verstoort.

Het gebeurt normaal gesproken in een stukje code en wanneer dat het geval is, wordt een object dat die uitzondering representeert gemaakt en gegooid in de methode die het veroorzaakte. Als gevolg hiervan is het programma of de toepassing verstoord waardoor de toepassing abnormaal wordt beëindigd, wat niet wordt aanbevolen. Daarom moeten deze uitzonderingen worden afgehandeld en hier komt het mechanisme voor het behandelen van uitzonderingen naar voren.

Er zijn twee soorten uitzonderingen die bestaan ​​in Java - Gecontroleerde en niet-gecontroleerde uitzondering. In dit artikel zullen we in detail bespreken wat een gecontroleerde en niet-gecontroleerde uitzondering is en wanneer deze moet worden gebruikt, en ten slotte zullen we het verschil tussen de twee zien.

Wat is gecontroleerde uitzondering in Java?

Dit zijn de uitzonderingen die worden gecontroleerd en afgehandeld tijdens het compileren. Java definieert verschillende uitzonderingscategorieën binnen het standaardpakket java.lang, en de meest voorkomende uitzonderingen zijn subklassen van het standaardtype RuntimeException.

De uitzonderingen die voorkomen in gebieden buiten de directe controle van het programma staan ​​bekend als gecontroleerde uitzonderingen. Als een methode worpen een gecontroleerde uitzondering op de compileertijd die het zelf niet aankan, dan moet het de uitzondering in a verwerken vang blokkeer of declareer de uitzondering met behulp van de worpen sleutelwoord, anders geeft het een compilatiefout. De compiler onderzoekt het type van het uitzonderingsobject voor elk gooien en als deze optie aangevinkt is, controleert de compiler de broncode om te controleren of de uitzondering wordt verwerkt in de methode waar deze wordt gegenereerd of wordt verklaard zodat deze verder kan worden verwerkt.

Alle uitzonderingen beschreven door Uitzondering welke zijn de directe subklassen behalve voor RuntimeException heten gecontroleerde uitzonderingen. Wanneer gebruik je gecontroleerde uitzondering? U kunt ervoor kiezen om een ​​gecontroleerde uitzondering te gebruiken wanneer u precies weet wat u moet doen als u een Uitzondering gebeurt of wanneer de kans op falen groter is. Enkele voorbeelden van gecontroleerde uitzonderingen in de Java-bibliotheek zijn IOException, DataAccessException, IllegalAccessException, InterruptedException, ClassNotFoundException, InvocationTargetException, enzovoort.

Wat is Niet-gecontroleerde uitzondering in Java?

Dit zijn de uitzonderingen die tijdens het compileren niet zijn gecontroleerd. Niet-gecontroleerde uitzondering vertegenwoordigt een voorwaarde die over het algemeen fouten in de logica van een programma weergeeft en die tijdens runtime niet kan worden hersteld.

In eenvoudige bewoordingen, ongecontroleerde uitzondering is een uitzondering die niet wordt gevangen in een proberen te vangen blok. Ze hoeven niet expliciet te worden gepakt. Wanneer een niet-gecontroleerde uitzondering optreedt, handelt Java de uitzondering automatisch af. Niet-gecontroleerde uitzonderingen komen meestal voor als gevolg van programmeerfouten, zoals bij toegang tot een element buiten een array-bonding of de toegang tot een methode van een nulobject. In Java zijn alle uitzonderingen onder throwable uitzonderingen gecontroleerd, terwijl uitzonderingen die directe subklassen zijn van Fout en RuntimeException zijn niet-gecontroleerde uitzonderingen.

Het beste deel van een ongecontroleerde uitzondering is dat dit de leesbaarheid van de code niet vermindert terwijl de clientcode schoon blijft. Enkele voorbeelden van niet-gecontroleerde uitzonderingen zijn ArithmeticException, ClassCastException, NullPointerException, ArrayIndexOutOfBound, IllegalArgumentException, IllegalStateException, ArrayStoreException, SecurityException, enz..

Verschil tussen gecontroleerde en niet-gecontroleerde uitzondering

Definitie van gecontroleerde en niet-gecontroleerde uitzondering

Gecontroleerde en niet-gecontroleerde uitzondering zijn de twee soorten uitzonderingen die in Java bestaan ​​om een ​​normale doorstroming van de toepassing te verzekeren. Beide hebben hetzelfde doel dat is bedoeld voor het verwerken van uitzonderingen in Java en hoewel er geen verschil in functionaliteit is, is er geen enkele regel om te bepalen wanneer gecontroleerd moet worden en wanneer niet-gecontroleerde uitzonderingen moeten worden gebruikt. Gecontroleerde uitzondering is een uitzondering die tijdens het compileren wordt gecontroleerd, terwijl Niet-gecontroleerde uitzondering die is die tijdens het compileren niet is gecontroleerd.

Basisprincipes van gecontroleerde en niet-gecontroleerde uitzondering

Een gecontroleerde uitzondering verwijst naar de ongeldige scenario's die buiten de directe controle van het programma plaatsvinden, terwijl niet-gecontroleerde uitzondering verwijst naar de fouten in het programma of fouten in de programmalogica die niet tijdens runtime kunnen worden hersteld.

Afhandeling van uitzonderingen

Als bij een methode een gecontroleerde uitzondering wordt gegenereerd, controleert de compiler of de methode die uitzondering verwerkt met behulp van try-catch-blok of geeft de uitzondering op met behulp van het worpen-trefwoord. Als de methode de afhandelingscode niet bevat, wordt er een compilatiefout weergegeven. Integendeel, het programma compileert prima omdat de compiler niet controleert op niet-gecontroleerde uitzonderingen tijdens het compileren.

Oorzaak van gecontroleerde en niet-gecontroleerde uitzondering

Uitzonderingen die niet zijn afgeleid van RunTimeException worden vaak afgehandeld, terwijl uitzonderingen tijdens runtime zelden worden behandeld. Een gecontroleerde uitzondering treedt op wanneer de faalkansen te hoog zijn. Niet-gecontroleerde uitzondering treedt meestal op vanwege programmeerfouten. Alle uitzonderingen onder RuntimeException en Error-klassen zijn niet-uitgezonderde uitzonderingen, terwijl al het andere onder throwable uitgesloten uitzonderingen zijn.

Voorbeelden van gecontroleerde en niet-gecontroleerde uitzonderingen

Enkele voorbeelden van gecontroleerde uitzonderingen zijn IOException, DataAccessException, IllegalAccessException, InterruptedException, ClassNotFoundException en meer. Voorbeelden van niet-gecontroleerde uitzonderingen zijn NullPointerException, ArithmeticException, ArrayIndexOutOfBound, IllegalArgumentException, IllegalStateException, ArrayStoreException, SecurityException, enzovoort.

Gecontroleerd versus niet-gecontroleerde uitzondering: vergelijkingsschema

Samenvatting van gecontroleerde en niet-gecontroleerde uitzonderingen

Gecontroleerde en niet-gecontroleerde uitzonderingen zijn de twee soorten uitzonderingen die in Java bestaan. Hoewel de functionaliteit voor beide uitzonderingen hetzelfde is, hebben ze toch een groot aantal verschillen. Het belangrijkste verschil tussen gecontroleerde en niet-gecontroleerde uitzonderingen is dat de eerstgenoemde wordt gecontroleerd door de compiler terwijl de laatste de melding van de compiler ontgaat. Uitzonderingen die tijdens het compileren worden gecontroleerd en afgehandeld, zijn uitgezonderde uitzonderingen, terwijl uitzonderingen die tijdens het compileren niet zijn gecontroleerd en afgehandeld, ongecontroleerde uitzonderingen zijn. In dit artikel wordt uitgelegd wat er wordt gecontroleerd en wat een niet-gecontroleerde uitzondering is, wanneer deze moet worden gebruikt en wordt het verschil tussen beide uitgelegd.