Úvod k spracovaniu výnimiek v jazyku C #
Nemôžeme očakávať, že používateľ bude stále zadávať správne údaje. Ak sa však s nesprávnym alebo neočakávaným vstupom nezaobchádza správne, celý kód by mohol zlyhať alebo ísť s nekonečnou slučkou. Toto je problém, ktorý sa začína počas vykonávania programu z dôvodu neočakávaných podmienok alebo vstupov. Napríklad výsledok je nekonečný, keď sa číslo delí nulou. Manipulácia s výnimkami je spôsob, ako povedať, aby program prešiel na ďalší blok kódu alebo poskytol definovaný výsledok v určitých situáciách. Zaobchádzanie s výnimkami bolo možné pomocou štyroch kľúčových slov.
- Try: Blok try definuje typ výnimky, ktorá sa má spracovať. Tu by sa chytila výnimka. Vždy sa spojí s jedným záchytným blokom.
- Catch: Akonáhle blok try definuje typ a počas vykonávania dostane jednu výnimku, blok catch potvrdí typ obsluhy výnimiek, ktorý sa má použiť. Tento blok tiež určí, kde sa má výnimka spracovať. Ako kľúčové slovo naznačuje, je to ako chytiť výnimku.
- Nakoniec: Tento blok obsahuje niekoľko príkazov. Bez ohľadu na vyvolenú výnimku sa vždy vykonajú príkazy definované v poslednom bloku.
- Hádzať: Keď sa zachytí výnimka, na zobrazenie zachytenej výnimky sa použije kľúčové slovo throw.
Softvér alebo kód môžete uložiť z množstva problémov pomocou definovania obsluhy výnimiek. Dobrým postupom je definovanie obsluhy výnimiek všade, kde je možná výnimka.
syntax
Vždy, keď je výnimka vznesená, deklarovaná metóda zachytí výnimku pomocou kľúčového slova try a catch. Túto kombináciu musíme umiestniť na časť kódu, očakáva sa výnimka. Tieto kódy sa nazývajú chránený kód. Môžete tiež definovať viac ako jedno kľúčové slovo catch pre jedno kľúčové slovo try. Na konci obsahu sa vykoná posledná časť kódu a vykoná sa bez ohľadu na to, či je alebo nie je vznesená výnimka.
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
)
Ako funguje spracovanie výnimiek v jazyku C #?
Existuje mnoho preddefinovaných tried pre spracovanie výnimky. Blok try pokrýva časť kódu, ktorá môže vyvolávať výnimku, a úlovok potvrdí, čo robiť, keď sa zachytí výnimka. Posledná časť bloku definuje, čo sa musí urobiť, či sa zistí výnimka alebo nie, a hádzaná časť zobrazí správu, ak je nejaká nastavená.
Výnimkové triedy v jazyku C #
V C # je k dispozícii veľa tried, prostredníctvom ktorých je možné reprezentovať výnimky. Všetky triedy sú odvodené od hlavnej triedy s názvom Systém. Výnimka. Existuje niekoľko tried, ktoré sú tiež odvodené od System.ApplicationException a System.SystemException.
Príklady tried výnimiek v jazyku C #
Výnimky sú odvodené zo systému. Výnimka. Tu je zoznam bežných tried C # výnimiek.
výnimka | popis |
System.DivideByZeroException | spracováva chybu pri pokuse rozdeliť číslo nulou. |
System.NullReferenceException | rieši chybu, keď odkazuje na objekt, ktorý neexistuje. |
System.InvalidCastException | rieši chybu pri skúšaní neplatného odovzdávania. |
System.IO.IOException | Všetky chyby vstupu a výstupu sú spracované. |
System.FieldAccessException | Pri pokuse o prístup k nepovolenej triede |
1. C # try / catch
Zaobchádzanie s výnimkami sa vykonáva pokusom a chytí blok v C #. Blok try v C # sa používa na umiestnenie kódu, ktorý môže vyvolať výnimku. Výnimku rieši blokovací blok.
Príklad C # bez vyskúšania / chytenia
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ýkon:
Prí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ýkon:
Nakoniec použite triedy výnimiek v jazyku C #
Ukáže vám správu bez ohľadu na zachytenú výnimku.
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ýkon:
1. C # konečný príklad, ak nie je spracovaná výnimka
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ýkon:
2. Výnimka definovaná používateľom C #
Definoval sa nielen systém, ale môžeme si tiež nastaviť vlastnú výnimku. Aby sme to dosiahli, musíme kód zdediť.
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ýkon:
záver
Na akomkoľvek mieste si myslíte, že by mohlo spôsobiť chybu z dôvodu čokoľvek, mala by sa použiť obsluha výnimky. Je dôležité, aby ste použili vyhlásenie o úlovku a začali od generických k špecifickým výnimkám. Bez správneho obsluhy výnimiek je celý váš softvér alebo kód ohrozený.
Odporúčané články
Toto je sprievodca spracovaním výnimiek v C #. Tu diskutujeme o tom, ako spracovanie výnimiek funguje v C #, príkladoch a použití c #. Viac informácií nájdete aj v ďalších súvisiacich článkoch.
- Preťaženie v C #
- C # Reťazcové funkcie
- Použitie C #
- C # if Vyhlásenie
- Sprievodca spracovaním výnimiek vo VB.NET
- Preťaženie a prekonanie v C #
- Udalosti VB.Net