|
|
Опубліковано 12.04.2015 22:22:03
|
|
|

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