Основы программирования в Win32API. Марапулец Ю.В. - 108 стр.

UptoLike

Составители: 

8.2. Средства обработки исключений в языках C/C++
Блок программного кода всегда должен начинаться ключевыми словами
try и catch, предоставляемыми компиляторами Microsoft C/C++. Причем блок
try помечает фрагмент программы, который может породить исключение, а
блок catch содержит программу, запускающуюся при наличии исключения. С
точки зрения программиста подобные синтаксические структуры удобны для
отделения программного кода, предназначенного для обработки исключитель-
ных ситуаций, от кода, выполняющего обычные задачи.
В MFC реализован механизм обработки исключений, который основан на
схеме, предложенной ANSI-комитетом по стандартизации языка C++.
В соответствии с этой схемой перед вызовом функции, которая может стать
причиной возникновения исключительной ситуации, должен быть иницииро-
ван обработчик исключений. Если функция приводит к возникновению ненор-
мальной ситуации, генерируется исключение, и управление передается обра-
ботчику.
В среде Visual C++ обработка исключений поддерживается с помощью
нескольких механизмов:
функций, обеспечивающих структурированную обработку исключений;
классов, отвечающих за обработку определенных типов исключений;
макрокоманд, позволяющих осуществить структуризацию обработчи-
ков исключений приложения;
функций, предназначенных для генерации исключений различных типов.
Все эти механизмы позволяют генерировать исключения нужных типов и
при необходимости прекращать выполнение программы.
Основу любого механизма обработки исключений в среде Visual C++ со-
ставляют операторы try и catch. Структура try/catch отделяет подпрограмму
обработки исключения от программного кода, который выполняется в нор-
мальных ситуациях:
try // начало блока try
{
< операторы основной программы > // код, в котором могут
// генерироваться исключения
}
catch(< фильтр >) // начало блока обработки исключений
{
< код подпрограммы обработки исключений > // код, который
// выполняется при наличии исключения
}…
В любой своей реализации механизм структурированной обработки ис-
ключений связывает блок защищаемого программного кода с подпрограммой
обработки исключений. Если исключение происходит при выполнении защи-
108
          8.2. Средства обработки исключений в языках C/C++

     Блок программного кода всегда должен начинаться ключевыми словами
try и catch, предоставляемыми компиляторами Microsoft C/C++. Причем блок
try помечает фрагмент программы, который может породить исключение, а
блок catch содержит программу, запускающуюся при наличии исключения. С
точки зрения программиста подобные синтаксические структуры удобны для
отделения программного кода, предназначенного для обработки исключитель-
ных ситуаций, от кода, выполняющего обычные задачи.
     В MFC реализован механизм обработки исключений, который основан на
схеме, предложенной ANSI-комитетом по стандартизации языка C++.
В соответствии с этой схемой перед вызовом функции, которая может стать
причиной возникновения исключительной ситуации, должен быть иницииро-
ван обработчик исключений. Если функция приводит к возникновению ненор-
мальной ситуации, генерируется исключение, и управление передается обра-
ботчику.
     В среде Visual C++ обработка исключений поддерживается с помощью
нескольких механизмов:
     – функций, обеспечивающих структурированную обработку исключений;
     – классов, отвечающих за обработку определенных типов исключений;
     – макрокоманд, позволяющих осуществить структуризацию обработчи-
ков исключений приложения;
     – функций, предназначенных для генерации исключений различных типов.
     Все эти механизмы позволяют генерировать исключения нужных типов и
 при необходимости прекращать выполнение программы.
     Основу любого механизма обработки исключений в среде Visual C++ со-
 ставляют операторы try и catch. Структура try/catch отделяет подпрограмму
 обработки исключения от программного кода, который выполняется в нор-
 мальных ситуациях:

try                                           // начало блока try
{
< операторы основной программы >              // код, в котором могут
                                      // генерироваться исключения
}
catch(< фильтр >)                 // начало блока обработки исключений
{
< код подпрограммы обработки исключений >            // код, который
                                // выполняется при наличии исключения
}…
     В любой своей реализации механизм структурированной обработки ис-
ключений связывает блок защищаемого программного кода с подпрограммой
обработки исключений. Если исключение происходит при выполнении защи-

                                   108