Kivételkezelés C # - -ben Hogyan működik a kivételkezelés a C # -ben Példák

Tartalomjegyzék:

Anonim

Bevezetés a kivételkezelésről C # -ben

Nem várhatjuk el, hogy a felhasználó folyamatosan megadja a helyes adatokat. Ha azonban a helytelen vagy váratlan bemenetet nem kezelik helyesen, akkor az egész kód összeomolhat, vagy végtelen hurokkal járhat. Ez egy olyan probléma, amely a program végrehajtásakor váratlan körülmények vagy bemenetek miatt indul. Például az eredmény végtelen, ha egy számot nullával osztunk. A kivételkezelés az a módszer, amellyel megmondhatjuk a programnak, hogy lépjen a következő kódblokkra, vagy bizonyos helyzetekben adja meg a meghatározott eredményt. A kivételkezelés négy kulcsszó alatt lehetséges.

  1. Try: A try blokk határozza meg a kezelni kívánt kivétel típusát. Ez az, ahol a kivétel alkalmazható. Mindig párosul egy fogási blokkkal.
  2. Catch: Miután a próbablokk meghatározta a típust és a végrehajtás során egyetlen kivételt kapott, a fogási blokk megerősíti a használni kívánt kivételkezelő típusát. Ez a blokk azt is meghatározza, hogy a kivételt miként kell kezelni. Amint a kulcsszó jelzi, ez olyan, mint a kivétel befogása.
  3. Végül: Ez a blokk tartalmaz néhány állításkészletet. A kivételtől függetlenül, az utolsó blokkban meghatározott utasításokat mindig végrehajtják.
  4. Dobás: Ha kivétel történt, akkor a dobott kulcsszó használatával jelenik meg a fogott kivétel.

A kivételkezelő meghatározásával megmentheti a szoftvert vagy a kódot sok gond nélkül. Jó gyakorlat a kivételkezelő meghatározása minden lehetséges kivétel esetén.

Szintaxis
A kivétel felmerülése esetén egy deklarált módszer fogja a kivételt a try and catch kulcsszó segítségével. Ezt a kombinációt a kód részére kell helyeznünk, kivétel várható. Ezeket a kódokat védett kódnak nevezzük. Egy próba kulcsszóhoz egynél több fogási kulcsszót is meghatározhat. A tartalom végén a kód utolsó része kerül végrehajtásra, és végrehajtásra kerül, függetlenül attól, hogy kivétel merül-e fel vagy sem.

Kód

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

Hogyan működik a kivételkezelés a C # -ben?

Számos előre meghatározott osztály létezik a kivétel kezelésére. A próbablokk lefedi a kód azon részét, amely kivételt okozhat, és a fogás megerősíti, hogy mit kell tenni, ha egy kivétel elfog. A mondat utolsó része meghatározza, hogy mit kell tenni függetlenül attól, hogy a kivétel észlelésre kerül-e, és a dobási rész megjeleníti az üzenetet, ha van ilyen.

Kivételes osztályok a C # -ben

Számos olyan osztály érhető el a C # -on belül, amelyeken kivételek képviselhetők. Az összes osztály a System nevű fő osztályból származik. Kivétel. Kevés olyan osztály létezik, amelyek szintén a System.ApplicationException és a System.SystemException származékokból származnak.

Példák a C kivételes osztályokra

A kivételek a Systemből származnak. Kivételes osztály. Itt található a C # általános kivételes osztályok listája.

KivételLeírás
System.DivideByZeroExceptionkezeli a hibát, amikor megpróbálja elosztani egy számot nullával.
System.NullReferenceExceptiona hibát kezeli, amikor egy nem létező objektumra hivatkozik.
System.InvalidCastExceptionkezeli a hibát az érvénytelen leadás kipróbálásakor.
System.IO.IOExceptionAz összes bemeneti-kimeneti hiba kezelésre kerül.
System.FieldAccessExceptionHa jogosulatlan osztályhoz próbál hozzáférni

1. C # próbáljon / fogjon

A kivétel kezelését a C # próba és a fogások blokkja segítségével végezzük. A C # -ben lévő próbablokk arra a kódra szolgál, amely kivételt okozhat. A kivételt a fogási blokk kezeli.

C # példa próbálkozás / fogás nélkül

Kód:

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

Kimenet:

C # próba / fogási példa

Kód

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

Kimenet:

Kivétel osztályok használata a C # -ben

Megjeleníti az üzenetet, kivéve, ha a kivétel be van tartva.

Kód

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

Kimenet:

1. C # végezzen példát, ha a Kivételt nem kezelik

Kód

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

Kimenet:

2. C # felhasználó által meghatározott kivétel

A nem csak a rendszer meghatározása, hanem a saját kivételünk is meghatározható. Ennek a folyamatnak azonban örökölnünk kell a kódot.

Kód

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

Kimenet:

Következtetés

Bármely helyről úgy gondolja, hogy hibát okozhat bármi miatt, kivételes kezelőt kell használni. Fontos, hogy használd a fogási nyilatkozatot, és kezdd az általános kifejezéstől egy konkrét kivételig. Megfelelő kivétel nélküli kezelő nélkül a teljes szoftver vagy a kód veszélyben van.

Ajánlott cikkek

Ez egy útmutató a kivételkezeléshez a C # -ben. Itt tárgyaljuk, hogyan működik a kivételkezelés a C # -ben, példák és a c # használata. Megnézheti más kapcsolódó cikkeinket, hogy többet megtudjon-

  1. Túlterhelés C # -ben
  2. C # karakterlánc funkciók
  3. A C # felhasználása
  4. C # ha nyilatkozat
  5. Útmutató a kivételkezeléshez a VB.NET-ben
  6. Túlterhelés és felülbírálás a C # -ben
  7. VB.Net események