Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Поддержка расширенных символовСодержание книги
Поиск на нашем сайте При работе с C++ имеется встроенный тип данных wchar_t, wchar_t – ключевое слово, а в стандарте С99 wchar_t определен в нескольких заголовочных файлах: <stddef.h> <stdlib.h> <wchar.h> <wctype.h> В C++ реализуется поддержка ввода-вывода для расширенных символов с помощью заголовочного файла <iostream.h>. Стандарт С99 поддерживает многобайтные символы, что невозможно в C++.
Глава 14. Исключения и их обработка Исключение – это некоторое действие, которое выполняется при наступлении нестандартных ситуаций. Говоря о об исключениях в С++, рассмотрим одну из таких нестандартных ситуаций — деление на 0. Представьте, что мы работаем в программе, где вручную вносим много числовых данных. Далее, в результате каких-то расчетов программы, значение одной из переменных станет равным 0. А в следующей строке кода это значение выступает делителем. Конечно, это действие приведет к неизбежному закрытию программы и выходу из нее. А теперь представьте, какие чувства вы испытаете, когда полчаса вводите данные, работая в этой программе, и на каком-то этапе она просто перестает работать и закрывается, а все данные пропадают. Пример 1 В переменную num 2 необходимо записать значение 0 для понимания сути проблемы. #include <iostream>; using namespace std;
Int main() { setlocale(LC_ALL, "rus");
int num 1; int num2; int var = 2; //управляющая переменная для while
while(var--) { cout << "Введите значение num1: "; cin >> num1; cout << "Введите значение num2: "; cin >> num2;
cout << "num1 + num2 = " << num1 + num2 << endl; cout << "num1 / num2 = " << num1 / num2 << endl; cout << "num1 - num2 = " << num1 - num2 << endl; cout << "=================================" << endl << endl; }
cout << "Программа завершила работу!" << endl << endl;
return 0; }
В программе цикл должен отработать два раза. В строке 12 мы передаем циклу значение переменной var и в этой же строке уменьшаем её на единицу, используя операцию декремента (var--). Но если в переменную num2 будет введено значение 0, мы увидим только результат сложения a + b, и программа завершит работу независимо от того, есть код ниже или нет, отработал цикл или нет. Используя исключения, мы сможем избежать таких проблем. Чтобы «прикрутить» исключение к этому примеру, надо познакомиться со следующими командами С++: throw, try, catch. В исходном коде ниже исключение сработает так: программа получает конкретное указание от программиста — если значение определённой переменной в определённом участке кода (в try-блоке) будет равно 0, то в этом случае пусть генерируется исключение throw. Это исключение автоматически передастся catch -блоку в виде параметра и выполнится код этого блока. Пример 2. #include <iostream>; using namespace std;
Int main() { setlocale(LC_ALL, "rus");
int num1; int num2; int var = 2;
while (var --) { cout << "Введите значение num1: "; cin >> num1; cout << "Введите значение num2: "; cin >> num2;
cout << "num1 + num2 = " << num1 + num2 << endl; cout << "num1 / num2 = ";
try //код, который может привести к ошибке, располагается тут { if (num2 == 0) { throw 123; //генерировать целое число 123 } cout << num1 / num2 << endl; } catch(int i)// сюда передастся число 123 { cout << "Ошибка №" << i << " - на 0 делить нельзя!!!!" << endl; }
cout << "num1 - num2 = " << num1 - num2 << endl; cout << "=================================" << endl << endl; }
cout << "Программа завершила работу!" << endl << endl;;
return 0; }
В этом коде сначала был определен try-блок. В нем располагается код, который потенциально может вызвать ошибку в работе программы, а именно ошибку в случае деления на 0. Задаем условие if — если num2 равно 0, то генерировать целое число 123, к примеру. В этом случае try-блок сразу прекращает выполнение дальнейших команд, а число 123 «падает» в catch. В нашем примере он выводит сообщение об ошибке. При этом программа продолжает работать и выполнять команды, размещенные ниже. Если же число num2 не будет равно нулю, то в try-блоке выполнится команда cout << num1 / num2 << endl;, а catch не сработает. Приложение 1.
|
||
|
Последнее изменение этой страницы: 2021-07-18; просмотров: 104; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.146 (0.008 с.) |