Главная arrow Язык программирования C# arrow C# Полное руководство Герберт Шилдт arrow Обработка исключительных ситуаций — изящный способ устранения программных ошибок C#

Обработка исключительных ситуаций — изящный способ устранения программных ошибок C#

Обработка исключительных ситуаций — изящный способ устранения программных ошибок C#, Обработка исключительных ситуаций в C# Устранение програмных ошибок в C#, Програмные ошибки в C#, C# Полное руководство Герберт Шилдт, Язык программирования C#, C# полное руководство

Одно из главных преимуществ обработки исключительных ситуаций заключается в том, что она позволяет вовремя отреагировать на ошибку в программе и затем продолжить ее выполнение. В качестве примера рассмотрим еще одну программу, в которой элементы одного массива делятся на элементы другого. Если при этом происходит деление на нуль, то генерируется исключение DivideByZeroException. Обработка подобной исключительной ситуации в этой программе заключается в том, что программа уведомляет об ошибке и затем продолжает свое выполнение. Таким образом, попытка деления на нуль не приведет к аварийному завершению программы из-за ошибки при ее выполнении. Вместо этого ошибка обрабатывается изящно, не прерывая выполнение программы.

// Изящно обработать исключительную ситуацию и
// продолжить выполнение программы.

using System;

class ExcDemo3 {
   static void Main() {
      int [ ] numer = { 4, 8, 16, 32, 64, 128 };
      int [ ] denom = {2, 0, 4, 4, 0, 8 };

      for(int i=0; i < numer. Length; i++) {
         try {
            Console .WriteLine (numer [i] + " / " +
                                  denom [i] + " равно " +
                      numer[i]/denom[i]);
         }
         catch (DivideByZeroException) {
            // Перехватить исключение.
            Console .WriteLine ("Делить на нуль нельзя!");
         }
      }
   }
}


Ниже приведен результат выполнения этой программы.
   4 / 2 равно 2
   Делить на нуль нельзя!
   16 / 4 равно 4
   32 / 4 равно 8
   Делить на нуль нельзя!
   128/8 равно 16

Из данного примера следует еще один важный вывод: как только исключение обработано, оно удаляется из системы. Поэтому в приведенной выше программе проверка ошибок в блоке try начинается сызнова на каждом шаге цикла for, при условии, что все предыдущие исключительные ситуации были обработаны. Это позволяет обрабатывать в программе повторяющиеся ошибки.