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

Исключения в классах - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ как сделать консольное окно поверх всех окон http://www.cyberforum.ru/cpp-beginners/thread642272.html
сабж было бы очень удобно дебагить если можно было бы это сделать заранее спасибо
C++ [c++] fgets не могу понять почему это не работает Вообщем на диске C:\ лежит 3 файла 1 Файл test.txt 2 Файл 1.dll 3 Файл 2.dll в test.txt записано: 1.dll 2.dll http://www.cyberforum.ru/cpp-beginners/thread642263.html
Отобразить указанное число строк со звездочками, с одной звездочкой в первой строке, двумя — во второй и т.д C++
Вот задача: Напишите программу, использующую вложенные циклы, которая запрашивает у пользователя значение количества строк для отображения. Затем она должна отобразить указанное число строк со звездочками, с одной звездочкой в первой строке, двумя — во второй и т.д: В каждой строке звездочкам должны предшествовать точки — в таком количестве, чтобы общее число символов в каждой строке...
C++ Определить сумму элементов массива, кратных трем
Помогите девушке решить индивидуальные задачи по С++ ........help me please!!!! 1.Дан массив A(N).Определить сумму элементов массива A кратных трем. Условия и ограничения: 0 (меньше либо равно) A(N) N(меньше либо равно) 21
C++ Определить сумму элементов массива, кратных трем http://www.cyberforum.ru/cpp-beginners/thread642234.html
Помогите девушке решить индивидуальные задачи по С++ ........help me please!!!! 1.Дан массив A(N).Определить сумму элементов массива A кратных трем. Условия и ограничения: 0 (меньше либо равно) A(N) N(меньше либо равно) 21
C++ Вычислить количество отрицательных элементов в каждом столбце матрицы и сформировать из них новый массив Помогите девушке решить индивидуальные задачи по С++ ........help me please!!!! 2. Массив матрица A(N,M). Вычислить количество отрицательных элементов в каждом столбце матрицы и сформировать из них новый массив. Условия и Ограничения: -6 (меньше либо равно) A(N,M) (меньше либо равно) 6 подробнее

Показать сообщение отдельно
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
25.08.2012, 01:19     Исключения в классах
> 1. Как-то это некрасиво и в стиле C.
Это давний срач, что лучше: коды возврата или исключения. (И ассерты сверху.)

> 2. Эх, это ж еще ловить их надо…
Вот это один из минусов исключений, приводимый в тех срачах: исключения нельзя спокойно игнорировать. На код возврата можно спокойно забить.

> Кстати, как-то можно выбрасывать ошибку еще при компиляции в случае "неподобства"?
Только на шаблонной магии, но это слегка сложно, выглядит уродски и не работает для переменных.
В общем случае нельзя: у Си++ не настолько крутая система типов, чтобы ловить такие несоответствия при компиляции (тип "число от 0 до 42" можно ввести только своим классом). Функция выполняется не при компиляции, а при выполнении программы. Тогда же она выкидывает все ошибки.

Конкретное решение больше зависит от того, кому нужна эта ошибка, когда она может произойти и насколько она фатальна. То есть кто обязан следить за тем, чтобы число находилось в пределах [0; 42]. Универсальный вариант: выкинуть исключение, а дальше это уже проблемы того, кто передаёт мусор в вашу функцию.
 
Текущее время: 21:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru