Объектно-ориентированное программирование на C++. Андрианова А.А - 13 стр.

UptoLike

Объектно-ориентированное программирование на С++
исключения невозможно проигнорировать, т.е. обязательно
любая исключительная ситуация должна быть обработана;
исключения выделяют обработку ошибок и восстановление
после них из основного потока управления, т.е. алгоритм
обработки данных описывается отдельно от обработки
исключительных ситуаций, которые могут в нем возникнуть;
при использовании в программах классов и объектов
исключения иногда оказываются единственной возможностью
обработки ошибок.
Для обработки исключений в язык С++ введены дополнительные
операторы: try, catch и throw. Обработка исключений состоит из
нескольких этапов:
выделение контролируемого блока, т.е. блока, в котором
может возникнуть исключительная ситуация – блок try;
генерация одного или нескольких исключений с помощью
оператора throw внутри блока try или внутри функций,
которые вызываются из этого блока;
размещение сразу за блоком try одного или нескольких
обработчиков исключений catch.
Рассмотрим программный код для обработки исключительной
ситуации деления на 0. Исключение будет генерироваться до тех пор,
пока пользователем не будут введены корректные данные.
. . .
while(true)
{
// ввод делимого (x) и делителя (y)
int x,y;
cout << "Введите x,y: " << endl;
cin >> x >> y;
// контролируемый блок, в котором могут
// возникнуть исключения
try
{
// если делитель y=0, нужно
// сгенерировать ислючение
if(y == 0)
// генерируется исключение типа int
throw 0;
// если частное можно вычислить,
// вычисляем и выводим результат
13
                           Объектно-ориентированное программирование на С++
       •  исключения невозможно проигнорировать, т.е. обязательно
          любая исключительная ситуация должна быть обработана;
        • исключения выделяют обработку ошибок и восстановление
          после них из основного потока управления, т.е. алгоритм
          обработки данных описывается отдельно от обработки
          исключительных ситуаций, которые могут в нем возникнуть;
        • при использовании в программах классов и объектов
          исключения иногда оказываются единственной возможностью
          обработки ошибок.
    Для обработки исключений в язык С++ введены дополнительные
операторы: try, catch и throw. Обработка исключений состоит из
нескольких этапов:
        • выделение контролируемого блока, т.е. блока, в котором
          может возникнуть исключительная ситуация – блок try;
        • генерация одного или нескольких исключений с помощью
          оператора throw внутри блока try или внутри функций,
          которые вызываются из этого блока;
        • размещение сразу за блоком try одного или нескольких
          обработчиков исключений catch.
    Рассмотрим программный код для обработки исключительной
ситуации деления на 0. Исключение будет генерироваться до тех пор,
пока пользователем не будут введены корректные данные.

    .    .    .
    while(true)
    {
         // ввод делимого (x) и делителя (y)
         int x,y;
         cout << "Введите x,y: " << endl;
         cin >> x >> y;

           // контролируемый блок, в котором могут
           // возникнуть исключения
           try
           {
                // если делитель y=0, нужно
                // сгенерировать ислючение
                if(y == 0)
                     // генерируется исключение типа int
                     throw 0;
                // если частное можно вычислить,
                // вычисляем и выводим результат
                                                                         13