Erandkäsitlus C # - Kuidas toimib erandjuhtude käsitlemine C # -s - Näited

Lang L: none (table-of-contents):

Anonim

Sissejuhatus erandkäsitlusele C # -s

Me ei saa eeldada, et kasutaja sisestab kogu aeg õiged andmed. Kui aga valet või ootamatut sisestust ei käsitata õigesti, võib kogu kood krahhi tekkida või minna lõputu ahelaga. See on probleem, mis algab programmi käivitamisel ootamatute tingimuste või sisendite tõttu. Näiteks on tulemus lõpmatu, kui number jagatakse nulliga. Erandkäsitsemine on viis, kuidas kästa programmil liikuda järgmisse koodiplokki või anda teatud olukordades määratletud tulemus. Erandkäsitluse võiks teha alla nelja märksõna.

  1. Proovige: prooviplokk määratleb käsitletava erandi tüübi. See on koht, kus erand satuks. See paarub alati ühe püügiplokiga.
  2. Saak: kui prooviplokk on tüübi määratlenud ja täitmise ajal saanud ühe erandi, kinnitab püügiplokk kasutatava erandkäitleja tüübi. See blokk määrab ka erandi käsitlemise koha. Nagu märksõna näitab, on see justkui erandi püüdmine.
  3. Lõpuks: selles plokis on mõned avaldused. Vaatamata erandile, täidetakse alati viimases plokis määratletud avaldused.
  4. Viska: kui erand on tabatud, kasutatakse püütud erandi kuvamiseks viskamist.

Erandite töötleja määratlemisega saate tarkvara või koodi salvestada palju vaeva. Hea tava on määratleda erandite töötleja kõikjal, kus on võimalik erand.

Süntaks
Erandi lisamisel püütakse deklareeritud meetod erandi abil proovida ja püüda märksõna abil. Peame selle kombinatsiooni paigutama koodi osale, eeldatakse erandit. Neid koode nimetatakse kaitstud koodideks. Samuti võite ühe proovimismeetodi jaoks määratleda rohkem kui ühe märksõna. Sisu lõpus täidetakse koodi viimane osa sellele ja see teostatakse sõltumata sellest, kas tehakse erand.

Kood

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

Kuidas toimib erandkäsitlus C # -s?

Erandi käsitlemiseks on palju eelnevalt määratletud klasse. Prooviplokk hõlmab koodi seda osa, mis võib erandi visata ja saak kinnitab, mida teha erandi tabamisel. Ploki viimane osa määratleb, mida tuleb teha, kas erand tuvastatakse või mitte, ning viskeosas kuvatakse teade, kui see on seatud.

Erandklassid C-klassis

C #-s on saadaval palju klasse, mille kaudu saab erandeid esindada. Kõik klassid on tuletatud põhiklassist nimega System. Erand. On vähe klasse, mis on samuti tuletatud süsteemidest System.ApplicationException ja System.SystemException.

C-klassi erandklasside näited

Erandid tulenevad süsteemist. Erandklass. Siin on C # levinumate erandklasside loend.

ErandKirjeldus
System.DivideByZeroExceptiontegeleb veaga, kui proovitakse arvu nulliga jagada.
System.NullReferenceExceptiontegeleb veaga, kui viidatakse objektile, mida pole olemas.
System.InvalidCastExceptionlahendab viga kehtetu ülekandmise proovimisel.
System.IO.IOErandKõik sisend-väljundviga on lahendatud.
System.FieldAccessExceptionKui proovite pääseda volitamata klassi

1. C # proovida / püüda

Erandite käsitlemine toimub proovivõtupüügiplokiga C #. C # prooviplokki kasutatakse koodi paigutamiseks, mis võib erandi anda. Erandiga tegeleb püügiblokk.

C # näide ilma proovimata

Kood:

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äljund:

C # proovida / püüda näide

Kood

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äljund:

Erandklasside kasutamine C # -s lõpuks

See näitab teile sõnumit, olenemata erandist.

Kood

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äljund:

1. C # lõpuks näide, kui erandit ei käsitleta

Kood

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äljund:

2. C # kasutaja määratletud erand

Mitte ainult määratletud süsteem, vaid ka meie saame teha oma erandi. Selle saavutamiseks peame siiski koodi pärima.

Kood

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äljund:

Järeldus

Mis tahes kohas võib teie arvates viga tekkida, tuleks kasutada erandkäitlejat. On oluline, et kasutaksite püügiavaldust ja alustaks üldistest kuni konkreetse erandini. Kogu teie tarkvara või kood on ohus ilma nõuetekohase erandita.

Soovitatavad artiklid

See on juhend erandite käsitlemiseks jaotises C #. Siin arutleme, kuidas erandite käsitlemine C #-s toimib, näiteid ja c # kasutamist. Lisateavet leiate ka meie muudest seotud artiklitest -

  1. Ülekoormus C # -s
  2. C # keelte funktsioonid
  3. Kasutab C #
  4. C # kui avaldus
  5. Erandite käsitlemise juhend VB.NET-is
  6. C-numbri ülekoormamine ja alistamine
  7. VB.Net sündmused