Урок #7 - Исключения и отлов ошибок

Урок #7 - Исключения и отлов ошибок

В уроке мы познакомимся с исключениями в языке C++. Нами будет рассмотрена конструкция try catch, что позволяет отлавливать ошибки в ходе выполнения программы.

Видеоурок

Что такое исключение?

Предположим, что вы разработали программу «Текстовый редактор». В программе пользователь может создать новый файл, вписать в него данные и далее сохранить файл в системе.


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


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


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


Отлов ошибок

Для вышеописанного случая как раз и нужна конструкция try catch для отлова ошибок в момент их создания. 


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


Реализации конструкции try catch

Для добавления отслеживания ошибок можно прописать следующий код:

try { // В блоке try мы пытаемся выполнить какой-либо код
	if (variable == 0) // Проверяем делитель на ноль
		throw 277; // Запускаем исключение и передаем в него параметр
	
	cout << something / variable << endl; 
} catch(int i) { // Здесь отлавливаем переданную ошибку
	cout << "Нам очень повезло!" << endl;
	cout << "Нам удалось избежать ошибки с индексом " << i << " - на 0 делить нельзя!";
}

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


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


Если необходимо отследить несколько классов с ошибками, то можно добавить несколько блоков catch. Все они добавляются друг под другом точно также как в условных операторах. 

Исходный код

Весь код будет доступен после подписки на проект!

Онлайн редактор кода

Загрузка...

Задание к уроку

Необходимо оформить подписку на проект, чтобы получить доступ ко всем домашним заданиям

Большое задание по курсу

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

Также стоит посмотреть

Изучение C++ от новичка до профи
Уроки Qt Creator | Графический интерфейс на С++
13 уроков
Создание игры на C++ / Создание "Змейки"
3 урока
Комментарии для сайта Cackle