Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 21123|Atsakyti: 0

[Šaltinis] Išimtys ir išimčių tvarkymas (C# programavimo vadovas)

[Kopijuoti nuorodą]
Paskelbta 2015-04-12 22:22:03 | | |

C# kalbos išimčių tvarkymo funkcija padeda susidoroti su bet kokiomis netikėtomis ar neįprastomis situacijomis, atsirandančiomis veikiant programai. Išimčių tvarkymas naudoja raktinius žodžius "try", "catch" ir "finally", kad išbandytumėte tam tikras operacijas, kad išspręstumėte gedimus, ir nors šios operacijos gali nepavykti, galite pabandyti tai padaryti, jei esate tikri, kad jums reikia tai padaryti ir norite išvalyti išteklius vėliau. Bendrosios kalbos vykdymo laikas (CLR), . NET Framework arba bet kuri trečiosios šalies biblioteka ar programos kodas gali generuoti išimtis. Išimtys sukuriamos naudojant raktinį žodį mesti.
Daugeliu atvejų išimtys gali būti iškeltos ne metodu, iškviečiamu tiesiogiai kodu, o kitu metodu toliau skambučių krūvoje. Tokiu atveju CLR išplečia rietuvę, kad pamatytų, ar yra metodas, kuriame yra to konkretaus išimties tipo gaudymo blokas, ir jei randa tokį metodą, jis vykdo pirmąjį tokį rastą gaudymo bloką. Jei skambučių krūvoje nerandamas tinkamas gaudymo blokas, procesas nutraukiamas ir vartotojui rodomas pranešimas.
Šiame pavyzdyje naudojamas metodas, skirtas nustatyti, ar yra situacija, kai jis padalijamas iš nulio; Jei yra, klaida užfiksuota. Jei nėra išimčių apdorojimo, ši programa nutrauks ir pateiks klaidą "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. }
Kopijuoti kodą






Ankstesnis:C# nustato, ar eilutėje yra simbolis
Kitą:Nustatykite, ar svetainę sukūrė "Discuz" forumo programa
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com