Шаг 220.
Язык программирования C#. Начала.
Обработка исключений. Использование конструкции try-catch

    На этом шаге мы рассмотрим общие приемы использования указанной конструкции.

    Мы уже сталкивались с конструкцией try-catch. В самом простом варианте эта конструкция используется следующим образом. Программный код, при выполнении которого может возникнуть ошибка, заключается в отдельный блок (выделяется фигурными скобками), помеченный ключевым словом try. Данный блок будем называть try-блоком, а содержащийся в нем код - контролируемым кодом. После try-блока следует catch-блок. В этом catch-блоке размещается программный код, предназначенный для обработки исключений. Общий шаблон использования конструкции try-catch такой:

try {
  // Контролируемый код
} catch {
  // Код для обработки исключений
}

    Если при выполнении контролируемого программного кода в try-блоке ошибок не было, то catch-блок игнорируется. По завершении выполнения кода из try-блока начинают выполняться команды после конструкции try-catch. Если же при выполнении команд в try-блоке возникла ошибка, то выполнение команд в try-блоке прекращается и начинают выполняться команды в catch-блоке. По завершении выполнения catch-блока начинают выполняться команды после конструкции try-catch. Напомним, что это наиболее простая схема перехвата и обработки исключений. Перехватываются исключения всех типов (все виды ошибок, которые, в принципе, можно перехватить и обработать), а объект исключения, который создается при возникновении ошибки, никак не используется.

    Если мы хотим использовать при обработке ошибки объект исключения, то необходимо немного видоизменить способ описания catch-блока. Правда изменения минимальны: после ключевого слова catch в круглых скобках указывается имя класса, определяющего тип перехватываемых ошибок, а также формальное обозначение для объекта исключения. То есть используется следующий шаблон описания catch-блока:

catch (клаcc объект){
  // Код для обработки исключений
}

    Если в качестве типа для объекта исключения указать класс Exception, то в catch-блоке будут перехватываться исключения всех типов, и при этом у нас будет возможность использовать объект исключения.


Если в catch-блоке указать класс перехватываемых ошибок, то этот блок будет обрабатывать ошибки данного класса и всех его подклассов. Класс Exception является базовым для прочих классов исключений. Поэтому если указать тип исключения как Exception, то в соответствующем catch-блоке будут перехватываться исключения всех типов.

    На следующем шаге мы закончим изучение этого вопроса.




Предыдущий шаг Содержание Следующий шаг