Toepassingen moeten fouten kunnen verwerken die optreden tijdens de uitvoering op een consistente manier. .NET biedt een model voor het melden van toepassingen op een uniforme manier: .NET-bewerkingen geven fouten aan door uitzonderingen te genereren.
Uitzonderingen
Een uitzondering is een foutvoorwaarde of onverwacht gedrag dat wordt aangetroffen door een uitvoerend programma. Uitzonderingen kunnen worden gegenereerd vanwege een fout in uw code of in code die u aanroept (zoals een gedeelde bibliotheek), niet-beschikbare besturingssysteembronnen, onverwachte voorwaarden die de runtime tegenkomt (zoals code die niet kan worden geverifieerd), enzovoort. Uw toepassing kan herstellen van sommige van deze voorwaarden, maar niet van anderen. Hoewel u de meeste toepassingsuitzondering kunt herstellen, kunt u niet herstellen van de meeste runtime-uitzonderingen.
In .NET is een uitzondering een object dat wordt overgenomen van de System.Exception klasse. Er wordt een uitzondering gegenereerd vanuit een codegebied waar zich een probleem heeft voorgedaan. De uitzondering wordt doorgegeven aan de stack totdat de toepassing deze verwerkt of het programma wordt beëindigd.
Uitzonderingen versus traditionele methoden voor foutafhandeling
Traditioneel is het foutafhandelingsmodel van een taal afhankelijk van de unieke manier om fouten te detecteren en handlers voor hen te vinden, of op het mechanisme voor foutafhandeling dat wordt geleverd door het besturingssysteem. De manier waarop .NET uitzonderingsafhandeling implementeert, biedt de volgende voordelen:
Uitzonderingen die worden gegenereerd en verwerkt, werken hetzelfde voor .NET-programmeertalen.
Vereist geen specifieke taalsyntaxis voor het verwerken van uitzonderingen, maar staat elke taal toe om een eigen syntaxis te definiëren.
Uitzonderingen kunnen worden gegenereerd over proces- en zelfs machinegrenzen.
Code voor het verwerken van uitzonderingen kan worden toegevoegd aan een toepassing om de betrouwbaarheid van het programma te vergroten.
Uitzonderingen bieden voordelen ten opzichte van andere methoden voor foutmeldingen, zoals retourcodes. Fouten worden niet onopgemerkt omdat als er een uitzondering wordt gegenereerd en u deze niet verwerkt, de runtime uw toepassing beëindigt. Ongeldige waarden blijven niet door het systeem doorgegeven als gevolg van code die niet kan controleren op een fout retourcode.
Algemene uitzonderingen
De volgende tabel bevat enkele veelvoorkomende uitzonderingen met voorbeelden van wat ze kunnen veroorzaken.
In deze module wordt het gebruik van uitzonderingen en het verwerkingsproces voor uitzonderingen in C#-consoletoepassingen verkend. Praktijkactiviteiten bieden ervaring met het implementeren van patronen voor het verwerken van uitzonderingen voor verschillende coderingsscenario's.