Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 21123|Відповідь: 0

[Джерело] Винятки та обробка винятків (Посібник з програмування на C#)

[Копіювати посилання]
Опубліковано 12.04.2015 22:22:03 | | |

Функція обробки винятків у мові C# допомагає обробляти будь-які несподівані або незвичайні ситуації, що виникають під час роботи вашої програми. Обробка винятків використовує ключові слова try, catch і, нарешті, щоб спробувати певні операції з метою вирішення збоїв, і хоча ці операції можуть зазнати невдачі, ви можете спробувати це зробити, якщо впевнені, що це потрібно і хочете очистити ресурси після цього. Спільний мовний виконавчий режим (CLR), . NET Framework або будь-який сторонній бібліотека чи код додатку може створювати винятки. Винятки створюються за допомогою ключового слова throw.
У багатьох випадках винятки можуть виникати не методом, викликаним безпосередньо кодом, а іншим методом, розташованим далі по стеку викликів. У цьому випадку CLR розгортає стек, щоб перевірити, чи є метод, що містить блок захоплення для цього типу винятку, і якщо він знаходить такий метод, виконує перший знайдений такий блок. Якщо в стеку виклику не знайдено відповідного блоку catch, процес припиняється, і користувачу відображається повідомлення.
У цьому прикладі використовується метод для виявлення, чи існує ситуація, коли він поділений на нуль; Якщо вона є, помилка виявляється. Якщо немає обробки винятків, ця програма завершить роботу і створить помилку «DivideByZeroException Not Оброблено».
  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