Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.72
Avazart
Эксперт С++
7674 / 5583 / 541
Регистрация: 10.12.2010
Сообщений: 25,044
Записей в блоге: 17
#1

ф-ция с throw - C++

25.05.2012, 23:40. Просмотров 3657. Ответов 29
Метки нет (Все метки)

Встретил такую мне незнакомую запись:
http://www.cyberforum.ru/cpp-beginners/thread664746.html

C++
1
2
3
4
тип имя_функции( параметры ) throw(что-то)
{
тело_ф-ции
}
Что дает такая запись с throw ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2012, 23:40
Я подобрал для вас темы с готовыми решениями и ответами на вопрос ф-ция с throw (C++):

Операторная ф-ция
Добрый вечер, вот есть код: #include <iostream> #include <stdio.h>...

Throw()
#include "stdafx.h" #include <iostream> using namespace std; void...

Глобальная ф-ция getline
Всем добрый вечер :) Вообщем есть кусок кода: // read for name vector ...

Параметризованная ф-ция класса
Пытаюсь заменить списки (используя структуры) на списки используя...

Рандомная ф-ция rand()
Всем привет,объясните пожалуйста как работает рандомная ф-ция,например:...

29
diagon
Higher
1937 / 1203 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
26.05.2012, 16:26 #21
Цитата Сообщение от Bers Посмотреть сообщение
Не отказались. Лишь признали правомерность исключений исключительно в исключительных ситуациях, но не в качестве штатной работы.
Возможно, я слишком плохо знаю английский, но что-то не вижу там такого пункта.
Вижу лишь "We do not use C++ exceptions" и исключение из правил для виндоус-кода.
0
Avazart
Эксперт С++
7674 / 5583 / 541
Регистрация: 10.12.2010
Сообщений: 25,044
Записей в блоге: 17
26.05.2012, 16:28  [ТС] #22
Прочитав раздел по исключения в этой книге я только запутался... так и не понял стратегию исключений и в чем подводные камни...
Естественно мне понятно что может быть утечка памяти из-за неправильно организованых исключений(вроде как отсюда и появились умные указатели...)
Но во всем другом чет не догнал... сильно уж абстрактно и без примеров

насколько геморройно писать безопасный с точки зрения исключений код.
А как без них?
0
Bers
Заблокирован
26.05.2012, 16:30 #23
Цитата Сообщение от diagon Посмотреть сообщение
Возможно, я слишком плохо знаю английский, но что-то не вижу там такого пункта.
есть некий инструмент, который может бросить исключение. Это вынуждает вызывающую сторону пасти исключения.

Нравится это, или нет.

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

Другими словами, они живут не в сферическом ваккуме, и им приходится учитывать эти ситуации.

Они лишь гарантирует, что ихние поставщики услуг исключений не кидают.
0
Avazart
Эксперт С++
7674 / 5583 / 541
Регистрация: 10.12.2010
Сообщений: 25,044
Записей в блоге: 17
26.05.2012, 16:30  [ТС] #24
diagon, ну так ты имел ввиду не пользоваться спецификациями исключений, или исключениями вообще?
Именно об этом я спрашивал...
0
Bers
Заблокирован
26.05.2012, 16:33 #25
Цитата Сообщение от Avazart Посмотреть сообщение
А как без них?
Игру запускаю в режиме "автоматическая без графики", и иду пить чай.
Через 15 минут прихожу (там уже порядка 15000-20000 игр), и смотрю где вылет: трассу стека функций. И сразу вижу, какова была ситуация перед тем, как сработала система безопасности.

Искусственно повторяю ситуацию, исправляю, потом запускаю ещё партию из 15000-20000 игр, и иду пить чай.
0
diagon
Higher
1937 / 1203 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
26.05.2012, 16:41 #26
Цитата Сообщение от Avazart Посмотреть сообщение
Прочитав раздел по исключения в этой книге я только запутался... так и не понял стратегию исключений и в чем подводные камни...
Естественно мне понятно что может быть утечка памяти из-за неправильно организованых исключений(вроде как отсюда и появились умные указатели...)
Но во всем другом чет не догнал... сильно уж абстрактно и без примеров
Мне также тяжело дался этот раздел(тяжелее него был лишь раздел про экспорт шаблонов). Причем это было сложновато просто понять. А уж как проектируют архитектуру сложных приложений с учетом исключений, я вообще не могу представить.

Цитата Сообщение от Avazart Посмотреть сообщение
А как без них?
Старые добрые коды ошибок в С-стиле.
Вроде
C
1
2
3
4
if (p = malloc(...) )
   //все ок
else
   //ошибка
В плюсах вместо этого генерируется исключение, поэтому new попросту опасно использовать с точки зрения исключений.
Еще красивее сделана функция perror.
Это все были С-шные примеры, но в плюсах эта схема также используется.
boost::error_code очень ярко это иллюстрирует
Еще можно ассерты использовать.
В общем, способов довольно много.
0
grizlik78
Эксперт С++
1982 / 1475 / 191
Регистрация: 29.05.2011
Сообщений: 3,048
26.05.2012, 16:48 #27
Цитата Сообщение от Avazart Посмотреть сообщение
Прочитав раздел по исключения в этой книге я только запутался...
В какой? Саттер? А предыдущую его книгу тоже читал?
0
Bers
Заблокирован
26.05.2012, 16:51 #28
Цитата Сообщение от diagon Посмотреть сообщение
В плюсах вместо этого генерируется исключение, поэтому new попросту опасно использовать с точки зрения исключений.
можно юзать и без искл.

Цитата Сообщение от diagon Посмотреть сообщение
Еще можно ассерты использовать.
Только не сырые. Макрос над макросом. Ибо, каждая система сборки исповедует собственную религию, и полагаться на стандартизированные флаги дебаг/релиз нельзя.
0
Avazart
Эксперт С++
7674 / 5583 / 541
Регистрация: 10.12.2010
Сообщений: 25,044
Записей в блоге: 17
26.05.2012, 17:27  [ТС] #29
В какой? Саттер? А предыдущую его книгу тоже читал?
Предыдущую это какую?
0
grizlik78
Эксперт С++
1982 / 1475 / 191
Регистрация: 29.05.2011
Сообщений: 3,048
26.05.2012, 18:07 #30
Решение сложных задач на C++.
Кстати, слово "сложных" в названии обеих книг не случайно. Они действительно, в большинстве своём, сложные. Хотя и не всегда задачи.
1
26.05.2012, 18:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.05.2012, 18:07
Привет! Вот еще темы с решениями:

ф-ция реверса строки
был вчера на собеседовании, попросили написать ф-цию реверса строки (поменять...

try, catch, throw
пишу класс namespace mystd { const uint32_t def_size = 1 << 20;...

throw, try, catch
Пожалуйста, помогите разобраться в том, что это такое, и как его правильно...

Try, catch, throw
Подскажите, как с помощью try, catch, throw, обработать исключение на вводимый...


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

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

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