Unntakshåndtering i C # - Hvordan unntakshåndtering i C # arbeid - eksempler

Innholdsfortegnelse:

Anonim

Introduksjon om unntakshåndtering i C #

Vi kan ikke forvente at en bruker oppgir riktig informasjon hele tiden. Imidlertid, hvis feil eller uventet inngang ikke håndteres riktig, kan hele koden krasje eller gå med en endeløs sløyfe. Dette er et problem som starter mens du kjører programmet på grunn av uventede forhold eller innganger. For eksempel er resultatet uendelig når et tall deles med null. Unntakshåndtering er måten å fortelle programmet om å gå videre til neste kodeblokk eller gi det definerte resultatet i visse situasjoner. Unntakshåndtering kan gjøres med under fire nøkkelord.

  1. Try: Try- blokken definerer typen unntak som skal håndteres. Det er her unntaket ville bli fanget. Den vil alltid koble seg sammen med en fangstblokk.
  2. Fangst: Når prøveblokken har definert typen og fått ett unntak under utførelsen, vil fangstblokken bekrefte typen unntakshåndterer som skal brukes. Denne blokken vil også bestemme hvor unntaket skal håndteres. Som nøkkelordet indikerer, er det som å fange unntaket.
  3. Til slutt: Denne blokken har noen sett med uttalelser. Uavhengig av unntaket blir kastet, vil uttalelsene som er definert i den endelige blokken alltid bli utført.
  4. Kast: Når et unntak er fanget, brukes kaste nøkkelord for å vise unntatt fanget.

Du kan lagre programvaren eller koden din fra mye mas ved å definere unntakshåndtereren. Det er en god praksis å definere unntakshåndterer uansett hvor det er mulig.

syntax
Hver gang unntaket heves, fanger en erklært metode unntaket ved hjelp av prøve og fangst søkeord. Vi må plassere denne kombinasjonen på den delen av koden, det forventes et unntak. Disse kodene kalles beskyttet kode. Du kan også definere mer enn ett fangstnøkkelord for et enkelt søkeord. På slutten av innholdet vil den endelige delen av koden bli kjørt til, og som vil bli utført uansett om et unntak er reist eller ikke.

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 unntakshåndtering i C #?

Det er mange forhåndsdefinerte klasser for å håndtere unntaket. Tryblokken dekker den delen av koden som kan kaste et unntak og fangst bekrefter hva du skal gjøre når et unntak blir fanget. Den siste delen av blokken definerer hva som må gjøres om unntaket blir oppdaget eller ikke, og kastdelen viser meldingen hvis den er angitt.

Unntaksklasser i C #

Det er mange klasser tilgjengelig i C # som unntak kan representeres. Alle klassene er avledet fra hovedklassen kalt System. Unntak. Det er få klasser som også er avledet fra System.ApplicationException og System.SystemException.

Eksempler på unntaksklasser i C #

Unntak er avledet fra System. Unntaksklasse. Her er listen over C # vanlige unntaksklasser.

UnntakBeskrivelse
System.DivideByZeroExceptionhåndterer feilen når du prøver å dele et tall med null.
System.NullReferenceExceptionhåndterer feilen når det refereres til et objekt som ikke eksisterer.
System.InvalidCastExceptionhåndterer feilen når du prøver ugyldig casting.
System.IO.IOExceptionAll input-output feil blir håndtert.
System.FieldAccessExceptionNår du prøver å få tilgang til uautorisert klasse

1. C # prøve / fange

Unntakshåndtering gjøres ved å prøve og fange blokkering i C #. Tryblokken i C # brukes til å plassere koden som kan kaste et unntak. Unntaket håndteres av fangstblokken.

C # eksempel uten prøve / 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");
)
)

Produksjon:

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

Produksjon:

Bruk av unntaksklasser i C # endelig

Den vil vise deg meldingen uansett unntak 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");
)
)

Produksjon:

1. C # endelig eksempel hvis unntak 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");
)
)

Produksjon:

2. C # brukerdefinert unntak

Det ikke bare definerte systemet, men vi kan også sette vårt eget unntak. Vi må imidlertid arve koden for å få dette til.

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

Produksjon:

Konklusjon

Hvor som helst du tror det kan generere en feil på grunn av noe, bør unntakshåndterer brukes. Det er viktig at du bruker en fangstoppgave og starter fra generisk til et spesifikt unntak. Hele programvaren eller koden din er utsatt uten skikkelig unntakshåndterer.

Anbefalte artikler

Dette er en guide til unntakshåndtering i C #. Her diskuterer vi hvordan Exception Handling fungerer i C #, eksempler og bruk av c #. Du kan også gå gjennom andre relaterte artikler for å lære mer-

  1. Overbelastning i C #
  2. C # Strengfunksjoner
  3. Bruk av C #
  4. C # hvis uttalelse
  5. Veiledning for unntakshåndtering i VB.NET
  6. Overbelastning og overstyring i C #
  7. VB.Net Events