De try-catch-eindelijk blokken in Java

Om een ​​Java-programma zo robuust mogelijk te maken, moet het uitzonderingen kunnen verwerken. De compiler draagt ​​zijn steentje bij door u niet toe te staan ​​een programma te compileren totdat het syntactisch correct is en kan ook wijzen op gecontroleerde uitzonderingen die moeten worden afgehandeld. Maar de uitzonderingen die waarschijnlijk de meeste hoofdpijn veroorzaken, zijn de uitzonderingen die verschijnen zodra het programma wordt uitgevoerd. Om met deze uitzonderingen om te gaan, biedt de Java-taal de try-catch-eindelijk-blokken.

Het proberen blokkeren

De

proberen
block bevat alle verklaringen die een uitzondering kunnen veroorzaken. Als u bijvoorbeeld gegevens uit een bestand leest met de
FileReader
verwacht wordt dat je de
IOExceptions
geassocieerd met het gebruik van een
FileReader
object bijvoorbeeld,
FileNotFoundException
en
IOException
. Om ervoor te zorgen dat dit gebeurt, kunt u de verklaringen plaatsen die te maken hebben met het maken en gebruiken van de
FileReader
object in een
proberen
blok: de code is echter onvolledig omdat we, om de uitzondering te kunnen afhandelen, een plaats nodig hebben om hem te vangen. Dit gebeurt in de

catch block.The catch Block

De

vangst
blok (ken) een plaats bieden om de uitzondering af te handelen die door de verklaringen binnen een
proberen
blok. De
vangst
blok wordt direct gedefinieerd na de
proberen
blok. Het moet het type uitzondering aangeven dat wordt verwerkt. Bijvoorbeeld de
FileReader
object gedefinieerd in de bovenstaande code kan een gooien
FileNotFoundException
of een
IOException
. We kunnen er twee specificeren
vangst
blokken om met beide uitzonderingen om te gaan:
FileNotFoundExceptioncatch
blokkeren kunnen we code plaatsen om de gebruiker te vragen het bestand voor ons te vinden en vervolgens proberen het bestand opnieuw te lezen. In de
IOException
vangstblok, kunnen we de I / O-fout gewoon doorgeven aan de gebruiker en hen vragen om iets anders te proberen. Hoe dan ook, we hebben het programma een manier geboden om een ​​uitzondering op te vangen en op een gecontroleerde manier af te handelen.
In Java SE 7 werd het mogelijk om meerdere uitzonderingen in één af te handelen
vangst
blok. Als de code die we wilden plaatsen in de twee
vangst
blokken hierboven was precies hetzelfde als we in plaats daarvan de code konden schrijven: om een ​​beetje huishouden te doen voor zover de bronnen gaan, kunnen we een eindelijk blok toevoegen. We willen tenslotte het bestand dat we hebben gelezen vrijgeven zodra we klaar zijn.

Het eindelijk blok

De verklaringen in het slotblok worden altijd uitgevoerd. Dit is handig om bronnen op te schonen in het geval dat het try-blok zonder uitzondering wordt uitgevoerd en in gevallen waarin er een uitzondering is. In beide gevallen kunnen we het gebruikte bestand sluiten. 

Het slotblok verschijnt direct na het laatste vangblok: