See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 21123|Vastuse: 0

[Allikas] Erandite ja erandite käsitlemine (C# programmeerimisjuhend)

[Kopeeri link]
Postitatud 12.04.2015 22:22:03 | | |

C# keele erandite käsitlemise funktsioon aitab sul toime tulla ootamatute või ebatavaliste olukordadega, mis tekivad programmi töötamise ajal. Erandite käsitlemine kasutab märksõnu try, catch ja finally märksõnu, et proovida teatud operatsioone ebaõnnestumiste lahendamiseks, ja kuigi neil operatsioonidel on potentsiaal ebaõnnestuda, võid seda proovida, kui oled kindel, et pead seda tegema ja tahad hiljem ressursse puhastada. Common Language Runtime (CLR), . NET Framework või mõni kolmanda osapoole teek või rakenduskood võib genereerida erandeid. Erandid luuakse viskamise märksõna abil.
Paljudel juhtudel ei pruugi erandeid tekitada otse koodiga kutsutud meetodiga, vaid mõne teise meetodiga, mis on kõnepinu allpool. Sellisel juhul laiendab CLR virna, et näha, kas leidub meetod, mis sisaldab selle konkreetse erandtüübi jaoks püügiplokki, ja kui leiab sellise meetodi, täidab ta esimese leitud püügiploki. Kui kõne virnas ei leita sobivat püügiplokki, lõpetatakse protsess ja kasutajale kuvatakse sõnum.
Selles näites kasutatakse meetodit, et tuvastada, kas on olukord, kus see jagatakse nulliga; Kui on, siis viga on kinni püütud. Kui erandite käsitlemist ei toimu, lõpetab see programm ja tekitab vea "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. }
Kopeeri kood






Eelmine:C# määrab, kas string sisaldab märki
Järgmine:Määra, kas veebileht on loodud Discuz foorumi programmi poolt
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com