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

Исключения, возврат кодов ошибок, assert и 1 вопрос про исключение. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Макроподстановки http://www.cyberforum.ru/cpp-beginners/thread379550.html
Добрый вечер. Помогите разобраться с заданием либо решить на "чистом Си". Нужно написать макрос, который будет обеспечивать последовательное введение (из стандартного файлового потока) и добавление действительных чисел. Цикл чтения прерывается при вводе нулевого значения. В основной программе нужно получить и вывести сумму введенных чисел.
C++ Rand число в char Доброго времени суток. Ребята, очень нужна ваша подсказка... мне надо записать в файл рандомные числа (с диапазоном) через rand(). я использую FILE *stream для файлов. поэтому, мне число надо переводить в рядок проблема в том что не работает такое char qw; qw=itoa(10,qw,5); p.s. 10 и 5 необязательные данные, могут быть любые http://www.cyberforum.ru/cpp-beginners/thread379548.html
C++ Бинарные деревья ! кому интересно , сюда!;)
задание : Описать процедуру или функцию которая : а) печатает запись, встречающуюся в дереве один раз б) печатает запись, встречающуюся в дереве максимальное число раз я уже не наю че делать(((( мыслей ноль(( не получается ничего( вот код : (заполнение и распечатка дерева рабочие) #include <iostream>
C++ Считывание из файла
#include "stdafx.h" #include <iostream> #include <conio.h> #include <fstream> #include <vector> using namespace std; void main() { setlocale(LC_ALL,"RUS"); vector <double> A;
C++ Помогите с парой вопросов по С++ http://www.cyberforum.ru/cpp-beginners/thread379529.html
Всё связано с консольными приложениями 1) После получения результата программа пишет "нажмите любую клавишу". После нажатия она закрывается. Как сделать, чтобы программа повторялась с самого начала (перед этим спрашивая о повторении) ? 2) Можно ли сделать так, чтобы введенные тобой символы не отображались в окне программы? А просто считывались после нажатия Enter? 3) Как изменить размер...
C++ Ребята помогите разработать прграмму на языке С Разработать программу определения затрат рабочего времени на выполнение строительных работ. Данные о строительных работах хранить в виде массива структур. Итоговая информация должна выводиться на экран в виде таблицы, отсортированной по номеру заказа. Средой разработки является Microsoft Visual Studio 2005. Язык разработки Си. Программа должна быть откомпилирована в формате «Release-версии». подробнее

Показать сообщение отдельно
silent_1991
Эксперт С++
4963 / 3039 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
08.11.2011, 01:03
Chelioss, assert нужен только на этапе разработки. Его используют, чтобы отловить ошибки, которые в итоговом варианте программы произойти не должны никогда (т.е. ошибки, случившиеся по вине программиста). Исключения же используются, наоборот, для ошибок, которые можно назвать ожидаемыми, и которые, скорее всего, происходят по вине пользователя (невалидные входные данные и т.д.). Вообще исключения надо использовать только в том случае, если программа никаким образом не может самостоятельно восстановить работу. Т.е. если пользователя просят ввести путь к файлу с исходными данными, а потом выясняется, что такого файла не существует - это исключение, поскольку программа не в состоянии сама выбрать замену. А вот если, например, программа ожидает какой-нибудь информации от внешнего устройства (например, от какого-либо датчика), а таковая в нужный момент не поступила, сразу паниковать не стоит. Может, устройство не ответило вовремя сейчас, но при последующем запросе всё сработает как надо. Поэтому лучше вернуть последнюю валидную информацию, полученную от устройства, и делать так, скажем 3 раза. И уж если на 4-й раз запрос снова остался без ответа - поднимать панику. Т.е. надо всеми силами стараться восстановиться после ошибки самостоятельно. Исключения на то так и называются, что применяются только в исключительных ситуациях, когда ничего уже поделать нельзя.
Пример - компилятор. Он не паникует при первой же полученной ошибке, он пытается её восстановить и разбирать код дальше. Конечно, это не приведёт к желаемому результату (программа всё равно не скомпилируется), но зато компилятор постарается выдать как можно более полный перечень найденных ошибок. Согласитесь, было бы не удобно, если бы компилятор прекращал работу после первой же встреченной ошибки.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru