Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 21123|Отговор: 0

[Източник] Изключения и обработка на изключения (C# Програмно ръководство)

[Копирай линк]
Публикувано в 12.04.2015 г. 22:22:03 ч. | | |

Функцията за обработка на изключения в езика C# ви помага да се справите с всякакви неочаквани или необичайни ситуации, които възникнат докато програмата ви работи. Обработката на изключения използва ключови думи try, catch и накрая, за да опита определени операции и да се справи с неуспехи, и въпреки че тези операции имат потенциал да се провалят, можете да опитате, ако сте сигурни, че трябва да го направите и искате да почистите ресурсите след това. Общ езиков период на изпълнение (CLR), . NET Framework или която и да е библиотека или код на приложение от трета страна може да генерира изключения. Изключения се създават чрез ключовата дума throw.
В много случаи изключенията не могат да бъдат предизвикани от метод, извикан директно от код, а чрез друг метод по-надолу в стека за повиквания. В този случай CLR разширява стека, за да види дали има метод, който съдържа блок за улавяне за конкретния тип изключение, и ако намери такъв метод, изпълнява първия такъв блок. Ако няма подходящ блок за улавяне никъде в стека за повиквания, процесът се прекратява и се показва съобщение на потребителя.
В този пример се използва метод за откриване дали има ситуация, в която се дели на нула; Ако има такава, грешката се улавя. Ако няма обработка на изключения, тази програма ще прекрати и ще създаде грешка "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. }
Копирай код






Предишен:C# определя дали низът съдържа знак
Следващ:Разберете дали уебсайтът е създаден от програмата Discuz
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com