Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.06.2010, 20:26   #1
Kn793
Форумчанин
 
Регистрация: 20.06.2008
Сообщений: 125
По умолчанию Спецификация исключений

Почему допустим такой код? В функции b() ведь явно указано что она не вызывает никаких исключений. Да и никаких unexpected()'ов с terminate()'ами не вызывается.
Код:
void a() throw(int) {
	throw 1;
}

void b() throw() {
	a();
}

void c() throw(int) {
	try {
		b();
	} catch(int b) {
		std::cerr << b << endl;
	}
}

int main() {
	c();
}
Kn793 вне форума Ответить с цитированием
Старый 28.06.2010, 21:08   #2
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

Что "такой код"???
Carbon вне форума Ответить с цитированием
Старый 28.06.2010, 21:10   #3
Kn793
Форумчанин
 
Регистрация: 20.06.2008
Сообщений: 125
По умолчанию

Что "Что "такой код"???"?
Kn793 вне форума Ответить с цитированием
Старый 28.06.2010, 21:26   #4
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

http://www.open-std.org/jtc1/sc22/op...ml#except.spec
Цитата:
Сообщение от Kn793 Посмотреть сообщение
Почему допустим такой код?
Вот так оно...
Цитата:
An implementation shall not reject an expression merely because when
executed it throws or might throw an exception that the containing
function does not allow. [Example:
extern void f() throw(X, Y);

void g() throw(X)
{
f(); // OK
}
the call to f is well-formed even though when called, f might throw
exception Y that g does not allow. ]
Цитата:
Сообщение от Kn793 Посмотреть сообщение
Да и никаких unexpected()'ов с terminate()'ами не вызывается.
Если поймать исключение, до unexpected дело не доходит.
Цитата:
Whenever an exception is thrown and the search for a handler
(_except.handle_) encounters the outermost block of a function with an
exception-specification, the function unexpected() is called
(_except.unexpected_) if the exception-specification does not allow
the exception.
Somebody вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
обработка исключений scray PHP 3 15.05.2010 15:02
Программирование исключений Serjuk Общие вопросы C/C++ 2 03.05.2010 22:11
Спецификация файлов векторных шрифтов! Levsha100 Свободное общение 6 30.10.2009 22:24
Спецификация формата .bdsproj (Borland) dcLout Софт 0 14.10.2009 13:44
Спецификация на GPS карты rabbojii Свободное общение 0 28.06.2009 21:55