Introductie over omgaan met uitzonderingen in C #

We kunnen niet verwachten dat een gebruiker altijd de juiste gegevens invoert. Als de onjuiste of onverwachte invoer echter niet correct wordt verwerkt, kan de hele code crashen of een eindeloze lus gebruiken. Dit probleem begint bij het uitvoeren van het programma vanwege onverwachte omstandigheden of invoer. Het resultaat is bijvoorbeeld oneindig wanneer een getal wordt gedeeld door nul. Uitzonderingsafhandeling is de manier om het programma te laten doorgaan naar het volgende codeblok of het gedefinieerde resultaat in bepaalde situaties te geven. Uitzonderingsafhandeling kan worden gedaan met minder dan vier trefwoorden.

  1. Try: het try-blok definieert het type uitzondering dat moet worden afgehandeld. Dit is waar de uitzondering zou worden gevangen. Het gaat altijd gepaard met één vangblok.
  2. Catch: Zodra het try-blok het type heeft gedefinieerd en tijdens de uitvoering één uitzondering heeft gekregen, bevestigt het catch-blok het type uitzonderingshandler dat moet worden gebruikt. Dit blok zal ook bepalen waar de uitzondering moet worden afgehandeld. Zoals het trefwoord aangeeft, is het net als het vangen van de uitzondering.
  3. Eindelijk: dit blok bevat een aantal uitspraken. Ongeacht de uitzondering die wordt gegenereerd, worden de in het laatste blok gedefinieerde instructies altijd uitgevoerd.
  4. Gooien: wanneer een uitzondering wordt gevangen, wordt het trefwoord throw gebruikt om de gevangen uitzondering weer te geven.

U kunt de software of uw code veel gedoe besparen door de uitzonderingshandler te definiëren. Het is een goede gewoonte om uitzonderingshandler te definiëren waar een mogelijke uitzondering is.

Syntaxis
Wanneer de uitzondering wordt opgeworpen, vangt een gedeclareerde methode de uitzondering met behulp van het trefwoord "try and catch". We moeten deze combinatie aan de kant van de code plaatsen, er wordt een uitzondering verwacht. Deze codes worden beschermde code genoemd. U kunt ook meer dan één catch-trefwoord definiëren voor één try-trefwoord. Aan het einde van de inhoud wordt het laatste deel van de code uitgevoerd naar en dat zal worden uitgevoerd ongeacht of er een uitzondering wordt opgeworpen.

Code

try
(
//Define the statement that could cause an exception.
)
Catch(ExceptionName secondException)
(
//error handling code
)
Finally
(
//define the statement that will be executed
)

Hoe werkt het omgaan met uitzonderingen in C #?

Er zijn veel vooraf gedefinieerde klassen voor het verwerken van de uitzondering. Het try-blok bedekt het deel van de code dat een uitzondering kan veroorzaken en catch bevestigt wat te doen wanneer een uitzondering is gevangen. Het laatste deel van het blok definieert wat moet worden gedaan, ongeacht of de uitzondering wordt gedetecteerd en het werpdeel geeft het bericht weer als dit is ingesteld.

Uitzonderingsklassen in C #

Er zijn veel klassen beschikbaar in C # waardoor uitzonderingen kunnen worden weergegeven. Alle klassen zijn afgeleid van de hoofdklasse die Systeem wordt genoemd. Uitzondering. Er zijn een paar klassen die ook zijn afgeleid van System.ApplicationException en System.SystemException.

Voorbeelden van uitzonderingsklassen in C #

Uitzonderingen zijn afgeleid van System. Uitzonderingsklasse. Hier is de lijst met C # algemene uitzonderingsklassen.

UitzonderingBeschrijving
System.DivideByZeroExceptionverwerkt de fout bij het proberen een getal door nul te delen.
System.NullReferenceExceptionbehandelt de fout bij het verwijzen naar een object dat niet bestaat.
System.InvalidCastExceptionverwerkt de fout bij het proberen van ongeldige casting.
System.IO.IOExceptionAlle invoer-uitvoerfouten worden afgehandeld.
System.FieldAccessExceptionWanneer u probeert toegang te krijgen tot ongeautoriseerde klassen

1. C # proberen / vangen

Uitzonderingsafhandeling wordt gedaan door try en catch-blok in C #. Het try-blok in C # wordt gebruikt om de code te plaatsen die een uitzondering kan veroorzaken. De uitzondering wordt afgehandeld door het vangblok.

C # voorbeeld zonder proberen / vangen

Code:

using System;
public class exceptionhandling
(
public static void Main(string() args)
(
int a = 10;
int b = 0;
int x = a/b; //we are trying to divide the number with zero
Console.WriteLine("other part of the code");
)
)

Output:

C # probeer / vang voorbeeld

Code

using System;
public class ExExample
(
public static void Main(string() args)
(
try
(
int a = 10;
int b = 0;
int x = a / b;
)
catch (Exception e) ( Console.WriteLine(e); )
Console.WriteLine("Rest of the code");
)
)

Output:

Eindelijk gebruik van uitzonderingsklassen in C #

Het zal u het bericht laten zien, ongeacht de uitzondering die is gevangen.

Code

using System;
public class Exceptionhandling
(
public static void Main(string() args)
(
try
(
int x = 5;
int y= 0;
int z = x / y;
)
catch (Exception obj) ( Console.WriteLine(obj); )
finally ( Console.WriteLine("Time to execute finally block"); )
Console.WriteLine("Other part of the code");
)
)

Output:

1. C # eindelijk voorbeeld als uitzondering niet wordt behandeld

Code

using System;
public class ExceptionHandling
(
public static void Main(string() args)
(
try
(
int p = 6;
int q = 0;
int r= p/q;
)
catch (NullReferenceException nullObject) ( Console.WriteLine(nullObject); )
finally ( Console.WriteLine("Exception not handled. Now Finally section will be executed"); )
Console.WriteLine("Other part of the code");
)
)

Output:

2. C # door de gebruiker gedefinieerde uitzondering

Het niet alleen gedefinieerde systeem, maar we kunnen ook onze eigen uitzondering instellen. We moeten de code echter erven om dit voor elkaar te krijgen.

Code

using System;
public class userdefinedInvalidAge : Exception
(
public userdefinedInvalidAge (String errorMessage)
: base(errorMessage)
(
)
)
public class TestUserDefinedException
(
static void validateAge(int age)
(
if (age < 18)
(
throw new userdefinedInvalidAge("Sorry, Age must be greater than 18");
)
)
public static void Main(string() args)
(
try
(
validateAge(12);
)
catch (userdefinedInvalidAge e) ( Console.WriteLine(e); )
Console.WriteLine("Rest of the code");
)
)

Output:

Conclusie

Op elke plaats waar u denkt dat het een fout kan genereren vanwege iets, moet een uitzonderingshandler worden gebruikt. Het is essentieel dat u een vangstverklaring gebruikt en van generieke naar een specifieke uitzondering begint. Uw volledige software of code loopt risico zonder de juiste uitzonderingshandler.

Aanbevolen artikelen

Dit is een handleiding voor het omgaan met uitzonderingen in C #. Hier bespreken we hoe Exception Handling werkt in C #, voorbeelden en gebruik van c #. U kunt ook onze andere gerelateerde artikelen doornemen voor meer informatie-

  1. Overbelasting in C #
  2. C # String Functies
  3. Gebruik van C #
  4. C # als Verklaring
  5. Handleiding voor het omgaan met uitzonderingen in VB.NET
  6. Overbelasting en opheffen in C #
  7. VB.Net-evenementen