Zpracování výjimek v C # - Jak pracuje zpracování výjimek v C # - Příklady

Obsah:

Anonim

Úvod do zpracování výjimek v C #

Nemůžeme očekávat, že uživatel bude neustále zadávat správné údaje. Pokud však nesprávný nebo neočekávaný vstup nebude zpracován správně, celý kód by se mohl zhroutit nebo jít s nekonečnou smyčkou. Toto je problém, který začíná při provádění programu kvůli neočekávaným podmínkám nebo vstupům. Například výsledek je nekonečný, když je číslo děleno nulou. Zpracování výjimek je způsob, jak říct programu, aby se přesunul na další blok kódu nebo poskytl definovaný výsledek v určitých situacích. Zpracování výjimek lze provést pomocí čtyř klíčových slov.

  1. Try: Blok try definuje typ výjimky, která má být zpracována. Zde by byla výjimka zachycena. Vždy se spáruje s jedním blokovacím blokem.
  2. Catch: Jakmile blok try definuje typ a během provádění dostane jednu výjimku, blok catch potvrdí typ obsluhy výjimek, který má být použit. Tento blok také určí, kde se má výjimka zpracovat. Jak klíčové slovo naznačuje, je to jako chytit výjimku.
  3. Konečně: Tento blok obsahuje několik příkazů. Bez ohledu na vyvolání výjimky budou příkazy definované v posledním bloku vždy provedeny.
  4. Throw: Když je zachycena výjimka, použije se klíčové slovo throw k zachycení zachycené výjimky.

Můžete uložit software nebo kód z mnoha potíží pomocí definice obsluhy výjimek. Je vhodné definovat zpracovatele výjimek, kdekoli existuje možná výjimka.

Syntax
Kdykoli je vyvolána výjimka, deklarovaná metoda zachytí výjimku pomocí klíčového slova try a catch. Tuto kombinaci musíme umístit na část kódu, očekává se výjimka. Tyto kódy se nazývají chráněný kód. Můžete také definovat více než jedno klíčové slovo catch pro jedno klíčové slovo try. Na konci obsahu bude provedena poslední část kódu a bude provedena bez ohledu na to, zda je vyvolána výjimka.

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
)

Jak funguje zpracování výjimek v C #?

Existuje mnoho předdefinovaných tříd pro zpracování výjimky. Blok try pokrývá část kódu, která by mohla vyvolat výjimku, a úlovek potvrdí, co dělat, když se zachytí výjimka. Závěrečná část bloku definuje, co je třeba udělat, ať už je detekována výjimka a házená část zobrazí zprávu, pokud je nastavena.

Výjimečné třídy v C #

V C # je k dispozici mnoho tříd, prostřednictvím kterých lze reprezentovat výjimky. Všechny třídy jsou odvozeny od hlavní třídy nazvané System. Výjimka. Existuje několik tříd, které jsou také odvozeny od System.ApplicationException a System.SystemException.

Příklady tříd výjimek v C #

Výjimky jsou odvozeny ze systému. Výjimečná třída. Zde je seznam běžných tříd výjimek C #.

VýjimkaPopis
System.DivideByZeroExceptionzpracovává chybu při pokusu o dělení čísla nulou.
System.NullReferenceExceptionzpracovává chybu při odkazu na objekt, který neexistuje.
System.InvalidCastExceptionzpracovává chybu při pokusu o neplatný casting.
System.IO.IOExceptionVeškerá chyba vstupu a výstupu je zpracována.
System.FieldAccessExceptionPři pokusu o přístup k nepovolené třídě

1. C # try / catch

Zpracování výjimek se provádí pomocí try a catch bloků v C #. Blok try v C # se používá k umístění kódu, který může vyvolávat výjimku. Výjimku zpracovává blokovací blok.

Příklad C # bez vyzkoušení / chycení

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

Výstup:

Příklad C # try / catch

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

Výstup:

Konečně použijte třídy výjimek v C #

Ukáže vám zprávu bez ohledu na zachycení výjimky.

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

Výstup:

1. C # konečně příklad, pokud není zpracována výjimka

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

Výstup:

2. C # uživatelem definovaná výjimka

Nejen systém byl definován, ale můžeme si také nastavit vlastní výjimku. Abychom to dokázali, musíme kód zdědit.

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

Výstup:

Závěr

Na jakémkoli místě si myslíte, že by to mohlo způsobit chybu kvůli něčemu, měla by být použita obsluha výjimek. Je nezbytné, abyste použili příkaz catch a začali od obecných až po konkrétní výjimky. Celý váš software nebo kód je ohrožen bez řádného zpracování výjimek.

Doporučené články

Toto je průvodce zpracováním výjimek v C #. Zde diskutujeme, jak Exception Handling pracuje v C #, příklady a použití c #. Další informace naleznete také v dalších souvisejících článcích.

  1. Přetížení v C #
  2. C # Řetězcové funkce
  3. Použití C #
  4. C # if Prohlášení
  5. Průvodce zpracováním výjimek ve VB.NET
  6. Přetížení a přemostění v C #
  7. Události VB.Net