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.
- Kokeile: Koetuslohko määrittelee käsiteltävän poikkeuksen tyypin. Tällöin poikkeus olisi kiinni. Se muodostuu aina pariksi yhden saalislohkon kanssa.
- 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.
- Lopuksi: Tässä lohkossa on joukko lauseita. Poikkeuksesta riippumatta viimeisessä lohkossa määritellyt lauseet suoritetaan aina.
- 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.
poikkeus | Kuvaus |
System.DivideByZeroException | käsittelee virheen yrittäessään jakaa numero nolla. |
System.NullReferenceException | käsittelee virheen viitattaessa objektiin, jota ei ole olemassa. |
System.InvalidCastException | käsittelee virheen yrittäessäsi virheellistä lähetystapaa. |
System.IO.IOException | Kaikki tulo- ja lähtövirheet hoidetaan. |
System.FieldAccessException | Kun 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-
- Ylikuormitus C #: ssä
- C # merkkijonotoiminnot
- C #: n käyttö
- C # jos lausunto
- Opas poikkeusten käsittelyyn VB.NET: ssä
- Ylikuormitus ja ohittaminen C #: ssä
- VB.Net -tapahtumat