Uvod o ravnanju z izjemami v C #
Ne moremo pričakovati, da bo uporabnik ves čas vnašal pravilne podatke. Če pa napačnega ali nepričakovanega vnosa ne ravnate pravilno, bi se lahko celotna koda zrušila ali šla z neskončno zanko. To je težava, ki se začne med izvajanjem programa zaradi nepričakovanih pogojev ali vnosov. Rezultat je na primer neskončen, če je število deljeno z ničlo. Ravnanje z izjemami je način, kako programu navesti program za prehod na naslednji blok kode ali zagotoviti določen rezultat v določenih situacijah. Obravnava izjem je mogoče opraviti z manj kot štirimi ključnimi besedami.
- Poskusi: poskusni blok določa vrsto izjeme, ki jo je treba obravnavati. Tu bi se ujela izjema. Vedno se bo združil z enim blokom ulova.
- Ulov: Ko je poskusni blok med izvajanjem določil vrsto in med izvajanjem dobil eno izjemo, bo blok privzgoje potrdil vrsto uporabnika izjem. Ta blok bo tudi določil, kje naj se obravnava izjema. Kot kaže ključna beseda, je kot lovljenje izjeme.
- Končno: V tem bloku je določen niz stavkov. Ne glede na to, kakšna je izjema, bodo izjave, opredeljene v končnem bloku, vedno izvedene.
- Vrzi: Ko je izjema ujeta, se za prikaz ujete izjeme uporabi ključna beseda metanje.
Programsko opremo ali kodo lahko shranite iz veliko težav, tako da določite upravljavca izjem. Dobra praksa je določiti upravljavca izjem, kjer koli je mogoče.
Sintaksa
Kadar koli je izjema postavljena, deklarirana metoda ujame izjemo s ključno besedo try in catch. To kombinacijo moramo postaviti na del kode, pričakujemo izjemo. Te kode imenujemo zaščitena koda. Za eno poskusno ključno besedo lahko določite tudi več ključnih besed. Na koncu vsebine bo končni del kode izveden in bo izveden ne glede na to, ali je izjeta ali ne.
Koda
try
(
//Define the statement that could cause an exception.
)
Catch(ExceptionName secondException)
(
//error handling code
)
Finally
(
//define the statement that will be executed
)
Kako deluje ravnanje z izjemami v C #?
Za ravnanje z izjemo je veliko vnaprej določenih razredov. Poskusni blok pokriva tisti del kode, ki bi lahko vrgel izjemo, ulov pa potrdi, kaj storiti, ko je izjema ujeta. Zadnji del bloka določa, kaj je treba storiti, ne glede na to, ali je odkrita izjema ali ne, del metanja pa prikaže sporočilo, če je nastavljeno.
Razredi izjem v C #
V C # je na voljo veliko razredov, v katerih so lahko predstavljene izjeme. Vsi razredi izhajajo iz glavnega razreda, imenovanega System. Izjema. Obstaja nekaj razredov, ki izhajajo tudi iz System.ApplicationException in System.SystemException.
Primeri razredov izjem v C #
Izjeme izhajajo iz sistema. Razred izjem. Tu je seznam C # pogostih razredov izjem.
Izjema | Opis |
System.DivideByZeroException | obravnava napako, ko poskuša število razdeliti na nič. |
System.NullReferenceException | napako obravnava pri napotitvi na objekt, ki ne obstaja. |
System.InvalidCastException | obravnava napako pri poskusu neveljavnega predvajanja. |
System.IO.IOException | Obravnava se vsa napaka med vhodom in izhodom. |
System.FieldAccessException | Ko poskušate dostopati do nepooblaščenega razreda |
1. C # poskusi / ulovi
Obravnava izjem se izvede s poskusom in ulovi blok v C #. Poskusni blok v C # se uporablja za postavitev kode, ki lahko vrže izjemo. Izjemo obravnava blok ulova.
Primer C # brez poskusov / ulova
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");
)
)
Izhod:
Primer # poskus / ulov
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");
)
)
Izhod:
Uporaba razredov izjem v C # končno
Prikazalo vam bo sporočilo, ne glede na izjeto.
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");
)
)
Izhod:
1. končno primer C #, če izjeme ni obravnavano
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");
)
)
Izhod:
2. Izjema, ki jo je določil C #
Sistem ni opredeljen le, ampak lahko postavimo tudi svojo izjemo. Vendar pa moramo kodo podedovati, da to dosežemo.
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");
)
)
Izhod:
Zaključek
Na katerem koli mestu, za katerega menite, da lahko povzroči napako zaradi česar koli, je treba uporabiti upravljavec izjem. Ključnega pomena je, da uporabite izjavo o ulovu in začnete od splošne do posebne izjeme. Celotna programska oprema ali koda je ogrožena brez ustreznega upravljavca izjem.
Priporočeni članki
To je vodnik za ravnanje z izjemami v C #. Tukaj razpravljamo o tem, kako deluje delo z izjemami v C #, primeri in uporaba c #. Obiščite lahko tudi druge naše sorodne članke, če želite izvedeti več -
- Preobremenitev v C #
- Funkcije niza C #
- Uporabe C #
- C # če Izjava
- Vodnik za ravnanje z izjemami v VB.NET
- Preobremenitev in preglasitev v C #
- VB.Net Dogodki