Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 21123|Odgovoriti: 0

[Vir] Izjeme in obravnava izjem (C# programski vodnik)

[Kopiraj povezavo]
Objavljeno na 12. 04. 2015 22:22:03 | | |

Funkcija upravljanja izjem v jeziku C# vam pomaga obvladovati vse nepričakovane ali nenavadne situacije, ki se zgodijo med izvajanjem vašega programa. Obravnava izjem uporablja ključne besede try, catch in final za poskus določenih operacij za obvladovanje napak, in čeprav imajo te operacije potencial za neuspeh, lahko poskusite, če ste prepričani, da morate to storiti in želite kasneje očistiti vire. Common Language Runtime (CLR), . NET Framework ali katerakoli knjižnica ali aplikacijska koda tretjih oseb lahko ustvari izjeme. Izjeme se ustvarijo z uporabo ključne besede za metanje.
V mnogih primerih izjem ne sproži metoda, ki jo kliče neposredno koda, temveč druga metoda nižje v skladu klicev. V tem primeru CLR razširi sklad, da preveri, ali obstaja metoda, ki vsebuje blok ujetja za to vrsto izjeme, in če najde takšno metodo, izvede prvi tak blok ujetja, ki ga najde. Če v skladu klicev ni najdenega ustreznega bloka za ulov, se postopek prekine in uporabniku se prikaže sporočilo.
V tem primeru se metoda uporablja za zaznavanje, ali je situacija deljena z nič; Če je, se napaka odkrije. Če ni obravnave izjem, se ta program zaključi in prikaže napako "DideleByZeroException 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. }
Kopiraj kodo






Prejšnji:C# določa, ali niz vsebuje znak
Naslednji:Ugotovite, ali je spletno stran ustvaril program foruma Discuz
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com