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

Ограничения исключительных ситуаций f(.)throw(.){} - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Почему перегруженные шаблоны функций должны возвращать один и тот же тип? http://www.cyberforum.ru/cpp-beginners/thread634228.html
Так как я еще очень плохо знаю шаблоны и никак не могу понять. Почему у всех перегруженных шаблонных функций с одинаковыми именами так же должны быть одинаковые возвращаемые значения? Первая программа компилируется а вторая нет. Во второй программе у второго шаблона я просто изменил тип возвращаемого значения с void на int 1) компилируется struct job { char name; double salary;...
C++ Не вызывается нужный конструктор базового класса Здравствуйте. Я пока в процессе изучения С++. Имеется следующая структура классов: Базовый: Person, расширяющие его: Student и Manager, и наследующий их обоих класс Employee - древо в виде ромба :) Вот собственно код: #include <iostream> http://www.cyberforum.ru/cpp-beginners/thread634211.html
Посчитать сумму четных элементов двумерного масива C++
посчитать сумму четных элементов двухменого массива 10*10 расположенных под главной диагональю
Разбор сложной строки с аргументами C++
Здравствуйте друзья! Мне кажеться я заблудился в этой жизни(( В мою длл через пайп поступает строка, а точнее комманда на чтение или запись памяти в этой строке нужно распознать аргументы указывающие на адресс ячейки памяти которую нужно прочитать/или записать, аргументы разделены знаком # 1 аргумент строки означает чтение или запись 2 аргумент адресс ячейки
C++ Argc и Argv http://www.cyberforum.ru/cpp-beginners/thread634117.html
Всем привет, у меня такой вопрос, как правильно вызвать данную функцию int test(int argc, char* argv){ } Я делала так, но компилятор выдает ошибки int main(int argc, char* argv){ for( i = 1; i<argc; i++) test(1, argv = "-n 1") } Что-то я неправильно делаю...
C++ Компилятор не видит заголовочные файлы >Quiet Snow<, вот тут все описано :) Как сделать, чтобы он инклюды видел? Взято отсюда подробнее

Показать сообщение отдельно
Alberto_Timakov
1 / 1 / 0
Регистрация: 21.11.2011
Сообщений: 183

Ограничения исключительных ситуаций f(.)throw(.){} - C++

07.08.2012, 13:09. Просмотров 1164. Ответов 20
Метки (Все метки)

Пробовал скомпилировать пример из Г. Шилдта [1]:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
using namespace std;
 
//Ограничения типов исключительных ситуаций, генерируемых функцией.
 
void Xhandler(int test)throw(char,double)
{
     if(test == 0) throw test;
     if(test == 1) throw 'a';
     if(test == 2) throw 123.23;
}
 
int main()
{
     cout << "Начало\n"
 
try
{
     Xhandler(0);
}
catch(int i)
{
     cout << "int" << endl;
}
catch(char)
{
     cout << "char\n";
}
catch(double)
{
     cout << "double\n";
}
cout << "Конец!";
return 0;
}
"Которая при попытке сгенерировать исключительную ситуацию типа не входящего в список throw, должна была завершиться аварийно"*[1]. Но она не завершается, а нормально работает...причем даже если поставить пустой параметр throw() при котором "функция Xhandler не может генерировать никаких исключительных ситуаций."[1]. Она все равно генерирует все, т.е. работает исправно...Что я не так понял???? Что я не так делаю? Вообще она работает?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 03:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru