|
|
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".- class ExceptionTest
- {
- static double SafeDivision(double x, double y)
- {
- if (y == 0)
- throw new System.DivideByZeroException();
- return x / y;
- }
- static void Main()
- {
- // Input for test purposes. Change the values to see
- // exception handling behavior.
- double a = 98, b = 0;
- double result = 0;
- try
- {
- result = SafeDivision(a, b);
- Console.WriteLine("{0} divided by {1} = {2}", a, b, result);
- }
- catch (DivideByZeroException e)
- {
- Console.WriteLine("Attempted divide by zero.");
- }
- }
- }
Kopeeri kood
|
Eelmine:C# määrab, kas string sisaldab märkiJärgmine:Määra, kas veebileht on loodud Discuz foorumi programmi poolt
|