Excepție manipulare în C # - Cum funcționează excepția în funcția C # - Exemple

Cuprins:

Anonim

Introducere privind manipularea excepțiilor în C #

Nu ne putem aștepta ca un utilizator să introducă detaliile corecte tot timpul. Cu toate acestea, dacă intrarea incorectă sau neașteptată nu este tratată corect, întregul cod ar putea să se prăbușească sau să meargă cu o buclă nesfârșită. Aceasta este o problemă care începe în timpul executării programului din cauza condițiilor sau a intrărilor neașteptate. De exemplu, rezultatul este infinit atunci când un număr este împărțit la zero. Tratarea excepțiilor este modalitatea de a spune programului să treacă la următorul bloc de cod sau să ofere rezultatul definit în anumite situații. Tratarea excepțiilor se poate face cu sub patru cuvinte cheie.

  1. Încercați: blocul de încercare definește tipul de excepție care trebuie gestionat. Aici ar fi prinsă excepția. Se va împerechea întotdeauna cu un singur bloc de captură.
  2. Catch: Odată ce blocul try a definit tipul și a obținut o excepție în timpul execuției, blocul de captură va confirma tipul de handler de excepție care va fi utilizat. Acest bloc va stabili, de asemenea, unde trebuie gestionată excepția. După cum indică cuvântul cheie, este ca și cum ai prinde excepția.
  3. În cele din urmă: acest bloc are un set de declarații. Indiferent de excepția aruncată, declarațiile definite în blocul final vor fi întotdeauna executate.
  4. Aruncați: Atunci când se prinde o excepție, se folosește cuvântul cheie aruncare pentru a arăta excepția prinsă.

Puteți salva software-ul sau codul dvs. de la o mulțime de probleme, definind gestionarea excepțiilor. Este o practică bună să definești gestionarul de excepții oriunde există o posibilă excepție.

Sintaxă
Ori de câte ori este ridicată excepția, o metodă declarată prinde excepția cu ajutorul cuvântului cheie try și catch. Trebuie să plasăm această combinație pe partea de cod, este de așteptat o excepție. Aceste coduri se numesc cod protejat. De asemenea, puteți defini mai mult de un cuvânt cheie de captură pentru un cuvânt cheie try. La sfârșitul conținutului, partea finală a codului va fi executată și va fi executată dacă se ridică sau nu o excepție.

Cod

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

Cum funcționează Exception Handling în C #?

Există multe clase predefinite pentru gestionarea excepției. Blocul de încercare acoperă partea codului care ar putea arunca o excepție și captura confirmă ce trebuie făcut atunci când este capturată o excepție. Partea finală a blocului definește ce trebuie făcut indiferent dacă este detectată sau nu excepția, iar partea aruncată afișează mesajul dacă este setată.

Clase de excepție în C #

Există multe clase disponibile în C # prin care pot fi reprezentate excepții. Toate clasele sunt derivate din clasa principală numită System. Excepție. Există câteva clase care sunt, de asemenea, derivate din System.ApplicationException și System.SystemException.

Exemple de clase de excepție în C #

Excepții sunt derivate din sistem. Clasa de excepție. Iată lista claselor de excepții comune C #.

ExcepțieDescriere
System.DivideByZeroExceptiongestionează eroarea când încercați să împărțiți un număr la zero.
System.NullReferenceExceptiongestionează eroarea atunci când se referă la un obiect care nu există.
System.InvalidCastExceptiongestionează eroarea atunci când încercați o distribuție nevalidă.
System.IO.IOExceptionToate erorile de intrare-ieșire sunt gestionate.
System.FieldAccessExceptionCând încercați să accesați o clasă neautorizată

1. C # încercați / prindeți

Manevrarea excepțiilor se face prin încercarea și prinderea blocurilor în C #. Blocul de încercare din C # este utilizat pentru a plasa codul care poate arunca o excepție. Excepția este gestionată de blocul de captare.

Exemplu C # fără a încerca / prinde

Cod:

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

ieşire:

Exemplu C # try / catch

Cod

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

ieşire:

Utilizarea claselor de excepție în C # în sfârșit

Acesta vă va afișa mesajul indiferent dacă este surprinsă excepția.

Cod

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

ieşire:

1. C # în sfârșit exemplu dacă Excepția nu este tratată

Cod

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

ieşire:

2. C # Excepție definită de utilizator

Nu numai că sistemul a fost definit, dar ne putem stabili și propria noastră excepție. Cu toate acestea, trebuie să moștenim codul pentru a realiza acest lucru.

Cod

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

ieşire:

Concluzie

În orice loc în care crezi că ar putea genera o eroare din cauza oricăror, ar trebui să se utilizeze manipulatorul de excepții. Este esențial să utilizați o declarație de captură și să porniți de la o generică la o excepție specifică. Întregul dvs. software sau cod este în pericol fără un gestionar de excepție adecvat.

Articole recomandate

Acesta este un ghid pentru manipularea excepțiilor în C #. Aici vom discuta despre modul în care funcționează Exception Handling în C #, exemple și utilizarea c #. Puteți, de asemenea, să parcurgeți alte articole conexe pentru a afla mai multe-

  1. Supraîncărcare în C #
  2. C # Funcții cu șiruri
  3. Utilizări ale C #
  4. C # dacă declarație
  5. Ghid pentru manipularea excepțiilor în VB.NET
  6. Supraîncărcare și suprasolicitare în C #
  7. Evenimente VB.Net