Шаг 205.
Microsoft Visual C++ 2010. Язык С/С++.
Управление исключительными ситуациями. Операторы try, catch и throw

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

    С помощью этих операторов и обрабатываются исключительные ситуации. Синтаксис объявления этих операторов таков:

try  {
  // здесь находится участок программы, в котором 
  // могут возникнуть исключительные ситуации
  } 
  [ catch (объявление исключения)
    { // операторы для обработки возникшего в try-блоке исключения
    }
  [ catch (объявление исключения)
    { // операторы, обрабатывающие другой тип исключения
    } ] ... ]

throw выражение

    Оператор throw выбрасывает для последующей обработки возникающее исключение.

    Тело оператора catch - это фактически и есть обработчик исключения. Исключение выбрасывается оператором throw, захватывается оператором catch и в его теле обрабатывается.

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

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

    Необязательный операнд (выражение) в throw имеет смысл операнда в операторе return: тоже возвращает нечто.

    Более детально процесс обработки исключительной ситуации состоит в следующем:

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




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