Poikkeuksellinen käsittely C #: ssä Kuinka poikkeusten käsittely C #: ssä toimii - esimerkit

Sisällysluettelo:

Anonim

Johdanto poikkeusten käsittelystä C #: ssä

Emme voi odottaa käyttäjän syöttävän oikeita tietoja koko ajan. Jos väärää tai odottamatonta syötettä ei käsitellä oikein, koko koodi voi kaatua tai mennä loputtoman silmukan mukana. Tämä on ongelma, joka alkaa ohjelman suorittamisen aikana odottamattomien olosuhteiden tai tulojen vuoksi. Esimerkiksi tulos on ääretön, kun luku jaetaan nollalla. Poikkeuskäsittely on tapa kertoa ohjelmalle siirtyä seuraavaan koodilohkoon tai antaa määritelty tulos tietyissä tilanteissa. Poikkeuskäsittely voidaan tehdä alle neljällä avainsanalla.

  1. Kokeile: Koetuslohko määrittelee käsiteltävän poikkeuksen tyypin. Tällöin poikkeus olisi kiinni. Se muodostuu aina pariksi yhden saalislohkon kanssa.
  2. Saalis: Kun yrittäjälohko on määritellyt tyypin ja saanut yhden poikkeuksen suorituksen aikana, saalislohko vahvistaa käytettävän poikkeuskäsittelijän tyypin. Tämä lohko määrittää myös, missä poikkeusta käsitellään. Kuten avainsana osoittaa, se on kuin poikkeuksen kaappaaminen.
  3. Lopuksi: Tässä lohkossa on joukko lauseita. Poikkeuksesta riippumatta viimeisessä lohkossa määritellyt lauseet suoritetaan aina.
  4. Heitä: Kun poikkeus on kiinni, heittää avainsanaa käytetään osoittamaan kiinniotettu poikkeus.

Voit tallentaa ohjelmiston tai koodisi paljon vaivaa määrittelemällä poikkeuksen käsittelijän. On hyvä käytäntö määritellä poikkeuksen käsittelijä missä tahansa mahdollista poikkeusta.

Syntaksi
Aina, kun poikkeusta nostetaan, ilmoitettu menetelmä tarttuu poikkeukseen try and catch-avainsanan avulla. Meidän on sijoitettava tämä yhdistelmä koodin osaan, poikkeus on odotettavissa. Näitä koodeja kutsutaan suojatuiksi koodeiksi. Voit myös määrittää useamman kuin yhden saalisavainsanan yhdelle koesaarille. Sisällön lopussa koodin viimeinen osa suoritetaan ja suoritetaan riippumatta siitä, tehdäänkö poikkeus.

Koodi

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

Kuinka poikkeusten käsittely toimii C #: ssä?

Poikkeuksen käsittelemiseksi on monia ennalta määritettyjä luokkia. Kokeilulohko kattaa sen osan koodista, joka saattaa heittää poikkeuksen ja saalis vahvistaa, mitä tehdä, kun poikkeus pyydetään. Lohkon viimeisessä osassa määritetään, mitä on tehtävä, onko poikkeus havaittu vai ei, ja heitto-osa näyttää viestin, jos se on asetettu.

Poikkeusluokat C #: ssä

C #: ssä on saatavana monia luokkia, joiden kautta poikkeuksia voidaan edustaa. Kaikki luokat ovat johdettu pääluokasta nimeltään System. Poikkeus. Muutamia luokkia, jotka johdetaan myös järjestelmistä System.ApplicationException ja System.SystemException.

Esimerkkejä C-luokan poikkeusluokista

Poikkeukset johdetaan järjestelmästä. Poikkeusluokka. Tässä on luettelo C # yleisistä poikkeusluokista.

poikkeusKuvaus
System.DivideByZeroExceptionkäsittelee virheen yrittäessään jakaa numero nolla.
System.NullReferenceExceptionkäsittelee virheen viitattaessa objektiin, jota ei ole olemassa.
System.InvalidCastExceptionkäsittelee virheen yrittäessäsi virheellistä lähetystapaa.
System.IO.IOExceptionKaikki tulo- ja lähtövirheet hoidetaan.
System.FieldAccessExceptionKun yritetään päästä luvattomaan luokkaan

1. C # kokeile / kiinni

Poikkeusten käsittely tapahtuu kokeilemalla ja saalislohkoa C #: ssä. C # -yrityksen lohkoa käytetään sijoittamaan koodi, joka voi heittää poikkeuksen. Poikkeusta käsittelee saalislohko.

C # esimerkki ilman kokeilua

Koodi:

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

lähtö:

C # kokeile / ota esimerkki

Koodi

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

lähtö:

Poikkeusluokkien käyttö C #: ssä viimeinkin

Se näyttää viestin riippumatta siitä, onko poikkeus kiinni.

Koodi

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

lähtö:

1. C # lopuksi esimerkki, jos Poikkeusta ei käsitellä

Koodi

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

lähtö:

2. C # käyttäjän määrittelemä poikkeus

Ei vain määritelty järjestelmä, mutta voimme myös asettaa oman poikkeuksen. Meidän on kuitenkin perittävä koodi saadaksemme tämän aikaan.

Koodi

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

lähtö:

johtopäätös

Missä tahansa luulet, että se saattaa aiheuttaa virheen mistä tahansa johtuen, poikkeuskäsittelijää tulisi käyttää. On tärkeää, että käytät saalisilmoitusta ja aloitat yleisestä erityiseen poikkeukseen. Koko ohjelmisto tai koodi on vaarassa ilman asianmukaista poikkeuskäsittelyä.

Suositellut artikkelit

Tämä on opas poikkeusten käsittelyyn C #: ssä. Tässä keskustellaan siitä, kuinka Exception Handling toimii C #: ssä, esimerkkejä ja c #: n käytöstä. Voit myös käydä läpi muiden aiheeseen liittyvien artikkeleidemme saadaksesi lisätietoja-

  1. Ylikuormitus C #: ssä
  2. C # merkkijonotoiminnot
  3. C #: n käyttö
  4. C # jos lausunto
  5. Opas poikkeusten käsittelyyn VB.NET: ssä
  6. Ylikuormitus ja ohittaminen C #: ssä
  7. VB.Net -tapahtumat