Introduktion om undantagshantering i C #

Vi kan inte förvänta oss att en användare ska ange korrekta detaljer hela tiden. Men om den felaktiga eller oväntade ingången inte hanteras korrekt, kan hela koden krascha eller gå med en ändlös slinga. Detta är ett problem som startar när programmet körs på grund av oväntade förhållanden eller ingångar. Till exempel är resultatet oändligt när ett tal delas med noll. Undantagshantering är sättet att berätta för programmet att gå vidare till nästa kodblock eller ge det definierade resultatet i vissa situationer. Undantagshantering kan göras med nedan fyra nyckelord.

  1. Försök: Tryckblocket definierar typen av undantag som ska hanteras. Det är här undantaget skulle fångas. Det kommer alltid att kopplas ihop med ett fångstblock.
  2. Fångst: När försöksblocket har definierat typen och fått ett undantag under utförandet kommer fångstblocket att bekräfta typen av undantagshanterare som ska användas. Detta block kommer också att avgöra var undantaget ska hanteras. Som nyckelordet indikerar är det som att få undantaget.
  3. Slutligen: Det här blocket har några uppsättningar. Oavsett om undantaget kastas kommer de uttalanden som definieras i det slutliga blocket alltid att köras.
  4. Kast: När ett undantag fångas, används ett nyckelord för att visa det fångade undantaget.

Du kan spara programvaran eller din kod från mycket krångel genom att definiera undantagshanteraren. Det är en bra praxis att definiera undantagshanterare där det finns ett möjligt undantag.

Syntax
Närhelst undantaget tas upp fångar en deklarerad metod undantaget med hjälp av nyckelordet Try and catch. Vi måste placera denna kombination på kodens sida, ett undantag förväntas. Dessa koder kallas skyddad kod. Du kan också definiera mer än ett nyckelord för ett försök. I slutet av innehållet kommer den sista delen av koden att köras till och som kommer att köras oavsett om ett undantag tas upp eller inte.

Koda

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

Hur fungerar undantagshantering i C #?

Det finns många fördefinierade klasser för att hantera undantaget. Tryckblocket täcker den del av koden som kan kasta ett undantag och fångst bekräftar vad man ska göra när ett undantag fångas. Den sista delen av blocket definierar vad som måste göras om undantaget upptäcks eller inte och kastdelen visar meddelandet om det är inställt.

Undantagskurser i C #

Det finns många klasser tillgängliga i C # genom vilka undantag kan representeras. Alla klasser härrör från huvudklassen som heter System. Undantag. Det finns få klasser som också härleds från System.ApplicationException och System.SystemException.

Exempel på undantagsklasser i C #

Undantag härrör från System. Undantagsklass. Här är listan över C # vanliga undantagsklasser.

UndantagBeskrivning
System.DivideByZeroExceptionhanterar felet när du försöker dela ett nummer med noll.
System.NullReferenceExceptionhanterar felet när det hänvisas till ett objekt som inte finns.
System.InvalidCastExceptionhanterar felet när du försöker ogiltig casting.
System.IO.IOExceptionAllt input-output-fel hanteras.
System.FieldAccessExceptionNär du försöker komma åt obehörig klass

1. C # prova / fånga

Undantagshantering görs genom att testa och fånga block i C #. Försöksblocket i C # används för att placera koden som kan kasta ett undantag. Undantaget hanteras av fångstblocket.

C # exempel utan försök / fångst

Koda:

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 # prov / fånga exempel

Koda

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:

Användning av undantagsklasser i C # äntligen

Det visar dig meddelandet oavsett vilket undantag du har tagit.

Koda

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. Exempel C # om undantag inte hanteras

Koda

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 # användardefinierat undantag

Det inte bara definierade systemet, utan vi kan också göra vårt eget undantag. Vi måste dock ärva koden för att göra detta.

Koda

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:

Slutsats

Var som helst du tror att det kan generera ett fel på grund av något, undantagshanterare bör användas. Det är viktigt att du använder ett fångstmeddelande och börjar från generiska till ett specifikt undantag. Hela programvaran eller koden är i riskzonen utan korrekt undantagshanterare.

Rekommenderade artiklar

Detta är en guide till undantagshantering i C #. Här diskuterar vi hur Exception Handling fungerar i C #, exempel och användning av c #. Du kan också gå igenom våra andra relaterade artiklar för att lära dig mer-

  1. Överbelastning i C #
  2. C # Strängfunktioner
  3. Användningar av C #
  4. C # om uttalande
  5. Guide till undantagshantering i VB.NET
  6. Överbelastning och överbestyrning i C #
  7. VB.Net-evenemang

Kategori: