in deze JAVA exceptions tutorial, leer wat een uitzondering is in Java, wat is een aangevinkte uitzondering en hoe het verschilt van een niet-aangevinkte uitzondering. We zullen ook leren een aantal best practices rond Java checked exceptions.
Table of Contents1. What is an exception in Java?2. Checked vs unchecked exceptions in Java3. Java exception handling best practices
Wat is een uitzondering in Java?
“een uitzondering is een onverwachte gebeurtenis die optreedt tijdens het uitvoeren van een programma dat de normale stroom van instructies verstoort.,”
in Java worden alle fouten en uitzonderingen weergegeven met Throwable class. Wanneer er een fout optreedt binnen een methode, maakt de methode een object (van elk subtype van Throwable
) en geeft het af aan het runtime systeem. Het object, een exception object genoemd.
Exception object bevat informatie over de fout, inclusief het type en de status van het programma toen de fout optrad. Het maken van een exception object en het overhandigen aan het runtime systeem heet het gooien van een uitzondering.
1.1., Exception handling
We hebben twee keuzes wanneer een exception object wordt gemaakt in onze toepassing.
- of we zullen het afhandelen binnen methode
- of we kunnen het doorgeven aan de beller methode om het te laten afhandelen.
Dit is een zeer belangrijke beslissing die moet worden genomen bij het bepalen van de verantwoordelijkheden van een methode. Een methode moet duidelijk aangeven dat wat alle uitzonderlijke scenario ‘ s zal behandelen en welke niet. Het wordt gedefinieerd in methode syntaxis met behulp van gooit clausule.
om de uitzondering af te handelen, moeten we de uitzondering vangen in de catch-sectie van het try-catch-blok.,
If an exception is not handled in the application, then it will propagate to JVM and JVM will usually terminate the program itself.
Checked vs unchecked exceptions in Java
2.1. Exception Hierarchy
In Java, exceptions are broadly categorized into two sections: checked exceptions and unchecked exceptions.
2.2. Checked Exceptions
Java forces you to handle these error scenarios in some manner in your application code., Ze zullen onmiddellijk in je gezicht komen, zodra u begint met het samenstellen van uw programma. Je kunt ze zeker negeren en ze laten doorgeven aan JVM, maar het is een slechte gewoonte. Idealiter moet u deze uitzonderingen behandelen op een passend niveau in uw applicatie, zodat u de gebruiker kunt informeren over een storing en hem kunt vragen om het opnieuw te proberen/ later te komen.
in het algemeen duiden gecontroleerde uitzonderingen op foutscenario ‘ s die buiten de directe controle van het programma vallen. Ze treden meestal op in interactie met externe bronnen / netwerkbronnen, bijvoorbeeld databaseproblemen, netwerkverbindingsfouten, ontbrekende bestanden, enz.,
Checked exceptions are subclasses of Exception class.
Example of checked exceptions are : ClassNotFoundException, IOException, SQLException and so on.
Checked Exception Example
FileNotFoundException
is a checked exception in Java. Anytime, we want to read a file from filesystem, Java forces us to handle error situation where file may not be present in place.
public static void main(String args) { FileReader file = new FileReader("somefile.txt");}
In above case, you will get compile time error with message – Unhandled exception type FileNotFoundException
.,
om het programma in staat te stellen te compileren, moet u deze foutsituatie afhandelen in try-catch
block. Hieronder gegeven code zal compileren absoluut prima.
2.3. Niet-aangevinkte uitzonderingen
Java biedt ook niet-aangevinkte uitzonderingen, waarvan de voorkomen niet worden gecontroleerd door de compiler. Ze zullen in het leven komen/optreden in uw programma, zodra een buggy code is uitgevoerd.
een methode wordt niet door de compiler gedwongen om de niet-aangevinkte uitzonderingen te verklaren die door de implementatie ervan worden veroorzaakt. Over het algemeen verklaren dergelijke methoden ze bijna altijd niet, ook.,
niet-aangevinkte uitzonderingen zijn subklassen van RuntimeException. Voorbeelden van niet-aangevinkte uitzonderingen zijn : ArithmeticException
, ArrayStoreException
, ClassCastException
enzovoort.
RuntimeException
zelf subklasse is van Exception
dat wil zeggen dat alle niet-aangevinkte uitzonderingsklassen impliciet gecontroleerd zouden moeten worden, maar dat zijn ze niet.”niet aangevinkt Exception Example
Checkout de gegeven code hieronder. Bovenstaande code geeft geen compilatietijdfout., Maar als je het voorbeeld geeft, gooit het NullPointerException
. NullPointerException is ongecontroleerde uitzondering in Java.
onthoud het grootste verschil tussen aangevinkte en niet-aangevinkte uitzonderingen is dat aangevinkte uitzonderingen worden geforceerd door de compiler en worden gebruikt om uitzonderlijke omstandigheden aan te geven die buiten de controle van het programma vallen (bijvoorbeeld I/O-fouten), terwijl niet-aangevinkte uitzonderingen zich voordoen tijdens runtime en worden gebruikt om programmeerfouten aan te geven (bijvoorbeeld een null pointer).,
Java exception handling best practices
- Checked uitzonderingen kunnen worden gebruikt wanneer een methode niet kan doen wat de naam zegt dat het doet. bijvoorbeeld een methode genaamd prepresystem () die vooraf instellingenbestanden invult en er wat configuratie mee doet, kan
FileNotFoundException
declareren, wat impliceert dat method instellingenbestanden van bestandssysteem gebruikt. - gecontroleerde uitzonderingen zouden idealiter nooit gebruikt moeten worden voor programmeerfouten, maar zouden absoluut gebruikt moeten worden voor resourcefouten en voor flow control in dergelijke gevallen.,
- gooi alleen die uitzonderingen die een methode met geen enkel middel aankan. Methode moet eerst proberen om het te behandelen zodra het tegenkomt. Gooi de uitzondering alleen als het niet mogelijk is om binnen methode te hanteren.
- een goede manier om methodehandtekeningen te definiëren is om uitzonderingen dicht bij methodenaam te verklaren. Als uw methode
openFile
heet, dan wordt verwacht datFileNotFoundException
wordt gegooid?. Als uw methodefindProvider
heet, dan wordt verwacht datNoSuchProviderException
wordt gegooid.,ook moeten dit soort uitzonderingen gecontroleerd worden omdat het de beller dwingt om de problemen aan te pakken die inherent zijn aan de semantische methode.
- regel is als een client redelijkerwijs kan worden verwacht om te herstellen van een uitzondering, maak het een gecontroleerde uitzondering. Als een client niets kan doen om te herstellen van de uitzondering, maak er dan een ongecontroleerde uitzondering van.
in werkelijkheid zullen de meeste toepassingen moeten herstellen van vrijwel alle uitzonderingen, waaronder
NullPointerException
,IllegalArgumentExceptions
en vele andere ongecontroleerde uitzonderingen., De actie / transactie die mislukt zal worden afgebroken, maar de toepassing moet in leven blijven en klaar zijn om de volgende actie / transactie te dienen.de enige keer dat het normaal gezien legaal is om een toepassing af te sluiten is tijdens het opstarten. Bijvoorbeeld, als een configuratiebestand ontbreekt en de applicatie kan niets zinnigs doen zonder, dan is het legaal om de applicatie af te sluiten.,
conclusie
in dit bericht hebben we het verschil geleerd tussen checked vs unchecked exceptions in Java, samen met hoe om te gaan met unchecked exceptions, exception hiërarchie in Java met voorbeelden.
aarzel niet om uw vragen in commentaar te plaatsen.
Gelukkig leren !!,
- Asynchronous and synchronous exceptions
- exception handling using inner classes
- exception handling best practices
- effectively handle NullPointerException
- Custom exceptions in Java
- Java exception doc
Leave a Reply