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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
xxx||yyy
0 / 0 / 0
Регистрация: 12.04.2012
Сообщений: 3
#1

собственный неожиданны обработчик - C++

12.04.2012, 15:22. Просмотров 327. Ответов 3
Метки нет (Все метки)

возникла проблема с обработкой исключений. В теории все понятно, а на практике получается бред. Не работают даже примеры, найденный на просторах инета

что здесь может быть не так?

C++
1
2
3
4
5
6
7
8
9
10
11
void Error()
{
 cout << "Error !!!!! " << endl;
}
 
void main()
{
 set_terminate(Error);
 throw "df";
 cout << "Cancel" << endl;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.04.2012, 15:22     собственный неожиданны обработчик
Посмотрите здесь:

C++ Собственный шаблон в Visual Studio
C++ Собственный класс-итератор
Собственный формат файла C++
Собственный класс итератора C++
C++ Создать собственный библиотечный файл
Реализуйте собственный класс строки C++
Собственный манипулятор C++
STL и собственный класс C++
C++ собственный тип данных в deque
C++ Создать собственный контейнер список
C++ Собственный графический интерфейс
Реализовать собственный cin C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MegaMozg
44 / 44 / 1
Регистрация: 19.12.2008
Сообщений: 110
12.04.2012, 15:30     собственный неожиданны обработчик #2
исключения обрабатываются в блоке:
C++
1
2
3
4
5
6
7
8
try
{
   ...
}
catch()
{
   ...
}
теория и прмер
xxx||yyy
0 / 0 / 0
Регистрация: 12.04.2012
Сообщений: 3
12.04.2012, 15:37  [ТС]     собственный неожиданны обработчик #3
[QUOTE=MegaMozg;2903572]исключения обрабатываются в блоке:
C++
1
2
3
4
5
6
7
8
try
{
   ...
}
catch()
{
   ...
}
имелась в виду замена функции terminate() собственной функцией-обработчиком (для тех исключений, для которых обработчики не сгенерированы)
ForEveR
Модератор
Эксперт С++
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
12.04.2012, 15:41     собственный неожиданны обработчик #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <stdexcept>
 
void on_terminate()
{
   std::cout << "Terminate called" << std::endl;
}
 
int main()
{
   std::set_terminate(on_terminate);
   throw 1;
}
forever@pterois:~/My_pro1/cpp_pro$ g++ -o new new.cpp
forever@pterois:~/My_pro1/cpp_pro$ ./new
Terminate called
Аварийный останов
std::abort() / std::terminate как видно вызывается в любом случае, после вызова нашей функции.
Yandex
Объявления
12.04.2012, 15:41     собственный неожиданны обработчик
Ответ Создать тему
Опции темы

Текущее время: 13:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru