Undtagelseshåndtering i C # - Hvordan undtagelseshåndtering i C # arbejde - eksempler

Indholdsfortegnelse:

Anonim

Introduktion til undtagelseshåndtering i C #

Vi kan ikke forvente, at en bruger indtaster de korrekte detaljer hele tiden. Hvis det forkerte eller uventede input imidlertid ikke håndteres korrekt, kan hele koden gå ned eller gå med en endeløs løkke. Dette er et problem, der starter, mens programmet udføres på grund af uventede forhold eller input. For eksempel er resultatet uendelig, når et tal deles med nul. Undtagelseshåndtering er måden at fortælle programmet om at gå videre til den næste kode med blok eller give det definerede resultat i visse situationer. Undtagelseshåndtering kunne udføres med under fire nøgleord.

  1. Try: Try- blokken definerer den type undtagelse, der skal håndteres. Det er her undtagelsen ville blive fanget. Det vil altid parre sig sammen med en fangstblok.
  2. Fangst: Når prøveblokken har defineret typen og fået en undtagelse under udførelsen, bekræfter fangstblokken den type undtagelseshåndterer, der skal bruges. Denne blok bestemmer også, hvor undtagelsen skal håndteres. Som nøgleordet viser, er det som at fange undtagelsen.
  3. Endelig: Denne blok har nogle sæt udsagn. Uanset hvilken undtagelse der kastes, vil udsagnene, der er defineret i den sidste blok, altid blive udført.
  4. Kast: Når en undtagelse er fanget, bruges kaste nøgleord til at vise den fangede undtagelse.

Du kan gemme softwaren eller din kode fra en masse besvær ved at definere undtagelseshåndtereren. Det er en god praksis at definere undtagelseshåndterer, uanset hvor der er en mulig undtagelse.

Syntaks
Hver gang undtagelsen hæves, fanger en deklareret metode undtagelsen ved hjælp af forsøg på at fange nøgleord. Vi er nødt til at placere denne kombination på den del af koden, der forventes en undtagelse. Disse koder kaldes beskyttet kode. Du kan også definere mere end et fangstnøgleord for et forsøgsøgeord. I slutningen af ​​indholdet udføres den sidste del af koden til, og den vil blive udført, uanset om der er rejst en undtagelse.

Kode

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

Hvordan fungerer undtagelseshåndtering i C #?

Der er mange foruddefinerede klasser til håndtering af undtagelsen. Trykblokken dækker den del af koden, der muligvis kan kaste en undtagelse og fangst bekræfter, hvad man skal gøre, når en undtagelse fanges. Den sidste del af blokken definerer, hvad der skal gøres, uanset om undtagelsen registreres eller ikke, og kastedelen viser meddelelsen, hvis den er angivet.

Undtagelsestimer i C #

Der er mange klasser tilgængelige i C #, gennem hvilke undtagelser kan repræsenteres. Alle klasser er afledt af hovedklassen kaldet System. Undtagelse. Der er få klasser, der også er afledt af System.ApplicationException og System.SystemException.

Eksempler på undtagelsesklasser i C #

Undtagelser stammer fra System. Undtagelsesklasse. Her er listen over C # almindelige undtagelsesklasser.

UndtagelseBeskrivelse
System.DivideByZeroExceptionhåndterer fejlen, når du prøver at dele et tal med nul.
System.NullReferenceExceptionhåndterer fejlen, når der henvises til et objekt, der ikke findes.
System.InvalidCastExceptionhåndterer fejlen, når du prøver ugyldig casting.
System.IO.IOExceptionAl input-output-fejl håndteres.
System.FieldAccessExceptionNår du prøver at få adgang til uautoriseret klasse

1. C # prøv / fang

Undtagelseshåndtering udføres ved at prøve og fange blok i C #. Trykblokken i C # bruges til at placere den kode, der kan kaste en undtagelse. Undtagelsen håndteres af fangstblokken.

C # eksempel uden forsøg / fangst

Kode:

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");
)
)

Produktion:

C # prøve / fange eksempel

Kode

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");
)
)

Produktion:

Brug af undtagelsesklasser i C # endelig

Det viser dig beskeden, uanset hvilken undtagelse der er fanget.

Kode

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");
)
)

Produktion:

1. C # endelig eksempel, hvis undtagelse ikke håndteres

Kode

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");
)
)

Produktion:

2. C # brugerdefineret undtagelse

Det ikke kun definerede system, men vi kan også indstille vores egen undtagelse. Vi er dog nødt til at arve koden for at få dette gjort.

Kode

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");
)
)

Produktion:

Konklusion

På ethvert sted, du tror, ​​det kan generere en fejl på grund af noget, bør undtagelseshåndterer bruges. Det er vigtigt, at du bruger en fangstopgørelse og starter fra generisk til en bestemt undtagelse. Hele din software eller kode er i fare uden korrekt undtagelsesbehandler.

Anbefalede artikler

Dette er en guide til undtagelseshåndtering i C #. Her diskuterer vi, hvordan Exception Handling fungerer i C #, eksempler og brug af c #. Du kan også gennemgå vores andre relaterede artikler for at lære mere-

  1. Overbelastning i C #
  2. C # strengfunktioner
  3. Anvendelser af C #
  4. C # hvis erklæring
  5. Vejledning til undtagelseshåndtering i VB.NET
  6. Overbelastning og tilsidesættelse i C #
  7. VB.Net Begivenheder