Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Диана123
0 / 0 / 0
Регистрация: 11.06.2014
Сообщений: 19
#1

Исключения и утверждения в с++ - C++

12.06.2014, 19:48. Просмотров 255. Ответов 2
Метки нет (Все метки)

можете понятными словами раскрыть всю суть утверждений и исключений. не могу понять
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.06.2014, 19:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Исключения и утверждения в с++ (C++):

Отметьте все верные утверждения - C++
struct String { /* ... */ char & at(size_t idx) { return str; } char at(size_t idx) const { return str; } ...

Определить истинные следующие утверждения: - C++
Определить истинные следующие утверждения: a) «любое выражение в Си может быть преобразован в оператор добавлением к нему точки с запятой...

Выберите все верные утверждения - C++
1) Если в базовом классе виртуальная функция определена как private, то в производном классе её можно переопределить как public. 2) У...

Какие утверждения являются верными? - C++
1) Операторы циклов for, while и do while не являются взаимозаменяемыми 2) Проверка условия выполняется на каждой итерации цикла 3) В...

Выберите все верные утверждения из списка - C++
1.Если в коде C++ вы вызываете необъявленную функцию, то это ошибка этапа компиляции. 2.Если в коде C++ вы вызываете функцию, которая...

Составить программу для проверки утверждения - C++
Составить программу для проверки утверждения"Результатами вычислений по формуле X^2+x+17 при 0<=x<=15 являются простые числа, все...

2
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
12.06.2014, 20:06 #2
утверждения - assert - проверка некоторого условия в процессе компиляции (static_assert) или исполнения в отладочном режиме, которое должно выполняться вне зависимости от исходных данных, т.е. нарушение этого условия говорит о неправильно написанном алгоритме программы.
исключения - exception - механизм прерывания исполнения кода в случае ошибки (инструкцией throw внутри блока try), с возможностью дальнейшей обработки в соответствующем блоке catch. Для исключений принято использовать специальные (стандартные или пользовательские) классы. Часто создают иерархию таких классов. Исключения, в частности, бывают полезны при возникновении ошибки в конструкторе класса (т.к. конструктор не имеет возвращаемого значения).
0
Renji
1927 / 1325 / 299
Регистрация: 05.06.2014
Сообщений: 3,819
12.06.2014, 20:12 #3
assert(условие)
В дебаг-сборке: проверить условие. Если не выполняется - вылетает ошибка и программа вываливается в отладчик. Если выполняется - ничего не происходит.
В релиз-сборке: не делать ничего. Вообще ничего. Если все же что-то происходит, значит настройки релиз-сборки кривые.

throw информация_о_ошибке - выполнять return, return, return отсюда и до первого подходящего catch блока. cath блок как-то там обрабатывает "информация_о_ошибке" (например, выводит на печать), программа работает себе дальше. Работа возобновляется после catch блока, а не там где вы кинули исключение.

Резюмируя: assert - произошла ошибка, разбираться с ней должен программист с отладчиком. throw - произошла ошибка, программа должна с ней как ни будь сама разобраться.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.06.2014, 20:12
Привет! Вот еще темы с ответами:

Указать верные утверждения в тесте по основам c++ - C++
Не могу понять, где ошибаюсь в тесте, нужно отметить только верное: 1) Синтаксис программы на C++ проверяется на этапе компиляции. 2)...

Составить программу для проверки утверждения - C++
Составить программу для проверки утверждения: «Результатами вычислений по формуле х^2 + х + 17 при 0 <= х <= 15 являются простые числа»....

Составить программу для проверки утверждения - C++
Составить программу для проверки утверждения: «Результа¬тами вычислений по формуле , при 0 < х < 15 явля¬ются простые числа». Все...

Какие утверждения справедливы в отношении инстанцирования и наследования? - C++
*При закрытом наследовании производный класс обогащает интерфейс базового, при открытом — полностью его подменяет. *Наследование классов...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru