Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Надейкина_ПРОГРАММИРОВАНИЕ_лабы9_10_11_new.doc
Скачиваний:
0
Добавлен:
11.02.2026
Размер:
129.42 Кб
Скачать

2 Лабораторная работа № 10 Обработка типовых исключений. Исключения типа стандартных данных, исключения - классы.

    1. Цель лабораторной работы

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

2.2. Теоретические сведения Общие сведения об исключениях

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

Есть целый ряд встроенных ситуаций, таких как

  • деление на ноль,

  • достижение конца файла,

  • переполнение в арифметических операциях,

  • обращение по несуществующему адресу памяти

и т. п.

Обычно эти события приводят к завершению программы с системным сообщением об ошибке.

C++ дает программисту возможность восстанавливать программу и продолжать ее выполнение. Делается это с помощью исключений.

Исключительные ситуации, можно разделить на два основных типа: синхронные и асинхронные.

Синхронные исключения могут возникнуть только в определённых, заранее известных точках программы. Так, например, ошибка чтения файла или нехватка памяти — синхронные исключения, так как возникают они только в операции чтения из файла или в операции выделения памяти соответственно.

Асинхронные исключения могут возникать в любой момент времени и не зависят от того, какую конкретно инструкцию программы выполняет система. Типичные примеры таких исключений: аварийный отказ питания.

Исключения C++ не поддерживают обработку асинхронных событий, таких, как обработку аппаратных прерываний, например, нажатие клавиш Ctrl+C.

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

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

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

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

Главной причиной является то, что функция, обнаружившая ошибку, может не знать, что предпринимать для ее исправления, а использующий эту функцию код может знать, что делать, но не уметь определить место возникновения.

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

Это важно, например, для конструкторов классов, которые не могут возвращать значение.

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

Но именно для выхода из тупиковых положений служит механизм исключений – средство, позволяющее отделить выявление особой ситуации от обработки информации о ней.