Inhoudsopgave:
Definitie - Wat betekent Catch Block?
Een catch-blok, in C #, is een optioneel codeblok dat wordt uitgevoerd wanneer een uitzondering wordt opgeworpen.
Catch-blok is een specifiek onderdeel van het uitzonderlijke verwerkingsconstructie en wordt geïmplementeerd met behulp van het trefwoord "catch" in combinatie met trefwoorden "proberen" en "eindelijk" en vormt het middel om gestructureerde uitzonderingsafhandeling te implementeren. Een try-blok bevat de bewaakte code die de uitzondering kan veroorzaken. Het bevat verklaringen die omgaan met uitzonderlijke omstandigheden en werken om te herstellen van dergelijke onverwachte omstandigheden.
Catch block vormt het middel voor het omgaan met uitzonderingen. Als deze niet worden afgehandeld, kan dit leiden tot beëindiging van het gehele programma door de .NET-runtime. Een vangblok kan worden gebruikt voor het verwerken van enige of specifieke uitzonderingen.
Techopedia legt Catch Block uit
Het uitzonderingsafhandelingsmodel van Common Language Runtime (CLR) staat meer dan één catch-blok toe, die elk zijn ontworpen om een specifieke uitzondering af te handelen. Wanneer zich een uitzondering voordoet, zoekt de CLR naar het catch-blok dat de uitzondering afhandelt. Als de momenteel uitgevoerde methode een dergelijk blok niet bevat, zoekt CLR ernaar in de methode die de huidige methode in de call-stack heeft opgeroepen. Als er in de hele code geen overeenkomende clausule voor die uitzondering wordt gevonden, wordt de uitvoering van de thread gestopt en wordt een onverwerkte uitzonderingsmelding aan de gebruiker weergegeven.
Hier volgen enkele tips voor het gebruik van een vangblok:
- Het uitzonderingstype moet alleen aan het vangstblok worden opgegeven nadat de reden achter het optreden van specifieke, niet te voorkomen uitzonderingen (zoals catastrofale systeemfouten, API-misbruik, etc.) is vastgesteld en herstel is geïmplementeerd zonder de toepassing in een inconsistente of ongeldige status.
- Het vangblok moet zo worden geplaatst dat de meer specifieke uitzonderingen moeten worden gevangen vóór de minder specifieke.
- Vangstblok zonder parameters wordt "eetuitzonderingen" genoemd omdat dit ernstige problemen kan onderdrukken die moeilijk te verhelpen zijn.
- Catch-blok kan worden gecentraliseerd zodat het de uitzondering vanaf een centrale locatie aankan.
- De "throw" -instructie kan worden gebruikt binnen het catch-blok waarvoor hetzelfde uitzonderingsobject dat tijdens de worp is doorgegeven, opnieuw kan worden doorgegeven tijdens het opnieuw werpen.
- Variabelen die binnen een try-blok worden gedeclareerd, kunnen er niet buiten worden gebruikt.
- Code wordt niet teruggezet naar het try-blok nadat het catch-blok is uitgevoerd.
- Het testen van de code van de uitzonderingshandler in het blokkeerblok is essentieel om te voorkomen dat de toepassing wordt verbroken.
- Catch block mag niet worden gebruikt voor opruimcode.
- Catch-blok zonder parameters kan niet worden gebruikt voor het omgaan met niet-Common Language System-compatibele uitzonderingen (die niet zijn afgeleid van System.Exception).
