Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 21123|Răspunde: 0

[Sursă] Excepții și gestionarea excepțiilor (Ghid de programare C#)

[Copiază linkul]
Postat pe 12.04.2015 22:22:03 | | |

Funcția de gestionare a excepțiilor din limbajul C# te ajută să gestionezi orice situație neașteptată sau neobișnuită care apare în timp ce programul tău rulează. Gestionarea excepțiilor folosește cuvintele cheie try, catch și finally pentru a încerca anumite operații pentru a gestiona eșecurile, iar deși aceste operații pot eșua, poți încerca dacă ești sigur că trebuie să faci asta și vrei să cureți resurse ulterior. Timp de rulare în limbaj comun (CLR), NET Framework sau orice bibliotecă sau cod de aplicație terță parte poate genera excepții. Excepțiile sunt create folosind cuvântul-cheie throw.
În multe cazuri, excepțiile pot să nu fie ridicate de o metodă numită direct prin cod, ci de o altă metodă mai jos pe stivă de apeluri. În acest caz, CLR extinde stiva pentru a vedea dacă există o metodă care conține un bloc de prindere pentru acel tip particular de excepție, iar dacă găsește o astfel de metodă, execută primul bloc de prindere găsit. Dacă nu se găsește niciun bloc de prindere adecvat în stiva de apeluri, procesul este terminat și un mesaj este afișat utilizatorului.
În acest exemplu, se folosește o metodă pentru a detecta dacă există o situație în care se împarte la zero; Dacă există, eroarea este detectată. Dacă nu există gestionare a excepțiilor, acest program se va termina și va produce o eroare "DivideByZeroException Not Handled".
  1. class ExceptionTest
  2. {
  3.     static double SafeDivision(double x, double y)
  4.     {
  5.         if (y == 0)
  6.             throw new System.DivideByZeroException();
  7.         return x / y;
  8.     }
  9.     static void Main()
  10.     {
  11.         // Input for test purposes. Change the values to see
  12.         // exception handling behavior.
  13.         double a = 98, b = 0;
  14.         double result = 0;

  15.         try
  16.         {
  17.             result = SafeDivision(a, b);
  18.             Console.WriteLine("{0} divided by {1} = {2}", a, b, result);
  19.         }
  20.         catch (DivideByZeroException e)
  21.         {
  22.             Console.WriteLine("Attempted divide by zero.");
  23.         }
  24.     }
  25. }
Cod de copiere






Precedent:C# determină dacă un șir conține un caracter
Următor:Determină dacă un site web este creat de programul de forum Discuz
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com