Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.53/30: Рейтинг темы: голосов - 30, средняя оценка - 4.53
19 / 20 / 2
Регистрация: 19.04.2012
Сообщений: 181
1

__try __except не работает

14.11.2012, 23:59. Показов 6039. Ответов 10
Метки нет (Все метки)

Подскажите, пожалуйста, почему это не работает и как ловить другие исключения.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// l4.cpp : Defines the entry point for the console application.
//
 
#include <windows.h>
#include <stdio.h>
 
int main (int argc, LPCSTR argv []) {
    float a=0,y=3,b;
    __try {
        b=y/a;
 
    } 
    __except (EXCEPTION_FLT_DIVIDE_BY_ZERO)  {
        printf("Dilennia na 0!\n");
    }
    system("pause");
    return 0;
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.11.2012, 23:59
Ответы с готовыми решениями:

Приложение работает в Debug, странно работает в Release и не работает при билде
Действия выполняются на эмуляторе Pixel 2. Android 9.0. Если я запускаю приложение с конфигурацией...

Мышь работает через раз, то есть запустил ОС - мышь не работает, перезагрузил - мышь работает
Установлена Windows 7 со всеми последними обновлениями. Все всегда замечательно работало. Но с...

Не работает скомпилированный EXE файл хотя в самой среде игра работает
Я почти закончил разработку своей игры на Unity2D но после запуска скомпилированного EXE файла...

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

10
846 / 777 / 258
Регистрация: 27.07.2012
Сообщений: 2,181
15.11.2012, 00:16 2
м.б. такая штука как у тебя и может работать, но я такого не встречал. Ловля исключений в С++ делается так:
C++
1
2
3
4
5
6
7
8
9
try {
// тут код, имеющий привычку сыпать исключения
} catch (EXCEPTION_FLT_DIVIDE_BY_ZERO)
{
// тут обработали деление на ноль
} catch (...)
{
// тут обработали всё остальные исключения
}
0
19 / 20 / 2
Регистрация: 19.04.2012
Сообщений: 181
15.11.2012, 00:37  [ТС] 3
John Prick, на c++ microsoft visual c++ 2008 express такое должно рабоать...
Но не работает((
0
846 / 777 / 258
Регистрация: 27.07.2012
Сообщений: 2,181
15.11.2012, 00:51 4
vetal20600, а зачем именно так писать? в чём выгода по сравнению с обычным try catch?
0
19 / 20 / 2
Регистрация: 19.04.2012
Сообщений: 181
15.11.2012, 00:52  [ТС] 5
Цитата Сообщение от John Prick Посмотреть сообщение
vetal20600, а зачем именно так писать? в чём выгода по сравнению с обычным try catch?
Потому что от меня требуют так сделать))
0
Don't worry, be happy
17055 / 9943 / 1915
Регистрация: 27.09.2012
Сообщений: 24,703
Записей в блоге: 1
15.11.2012, 01:46 6
ОБРАБОТКА ИСКЛЮЧЕНИЙ В VISUAL C++
2
Jesus loves me
Эксперт С++
5170 / 3143 / 353
Регистрация: 12.12.2009
Сообщений: 7,933
Записей в блоге: 2
15.11.2012, 09:52 7
Цитата Сообщение от John Prick Посмотреть сообщение
м.б. такая штука как у тебя и может работать, но я такого не встречал. Ловля исключений в С++ делается так:
Цитата Сообщение от John Prick Посмотреть сообщение
а зачем именно так писать? в чём выгода по сравнению с обычным try catch?
Нет, не ошибка. Да, в С++ такого нет, это называется SEH (Structured Exception Handling). Под виндой можно делать так
C++
1
2
3
4
5
6
7
8
     _try
     {
         // some code 
     }
     _except( EXCEPTION_EXECUTE_HANDLER )
     {
         printf( " Caught the exception\n" );
     }
vetal20600, похоже ты просто что-то не так собрал, код рабочий.
1
Don't worry, be happy
17055 / 9943 / 1915
Регистрация: 27.09.2012
Сообщений: 24,703
Записей в блоге: 1
16.11.2012, 13:39 8
Цитата Сообщение от Kastaneda Посмотреть сообщение
vetal20600, похоже ты просто что-то не так собрал, код рабочий.
Попробовал ради интереса на 12-ой студии. Так то все нормально, но значение, возвращаемое функцией
C++
1
GetExeptionCode()
не совпадает со значением
C++
1
EXCEPTION_FLT_DIVIDE_BY_ZERO
0
19 / 20 / 2
Регистрация: 19.04.2012
Сообщений: 181
16.11.2012, 14:09  [ТС] 9
Всем спасибо.
Уже сам разобрался, что было не так...
0
Эксперт С++
5043 / 3104 / 271
Регистрация: 11.11.2009
Сообщений: 7,047
21.11.2012, 13:49 10
Цитата Сообщение от vetal20600 Посмотреть сообщение
Уже сам разобрался, что было не так...
Разобрались - поведайте об этом. Решение проблемы может быть интересно другим пользователям форума.
1
19 / 20 / 2
Регистрация: 19.04.2012
Сообщений: 181
29.11.2012, 21:51  [ТС] 11
Надо было сделать так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// l4.cpp : Defines the entry point for the console application.
//
 
#include <windows.h>
#include <stdio.h>
 
int main (int argc, LPCSTR argv []) {
    dword pmm;
    int a=0,y=3,b;
    __try {
        b=y/a;
 
    } 
    __except (exception_execute_handler)  {
    pmm=GetExceptionCode();
    if (pmm==EXCEPTION_INT_DIVIDE_BY_ZERO) {
            printf("Divide by 0!!!\n");
        }
        
    }
    system("pause");
    return 0;
}
3
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.11.2012, 21:51

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Так работает или не работает второй слот для оперативной памяти
Моему компьютеру уже больше 7-ми лет, купили мне его в сентября 2005 года. На то время очень даже...

IE опять все портит, в 9 версии работает, а в остальных нет. не работает float
сайт http://gkantecreo.ru/ вверху в шапке слайдер в блоке div с css {float: left; padding-left:...

Не работает php на wps-е. Гланвая страница работает все остальное нет
На локальном дэнвере все отлично работает. Но при копировании на впс и сдоступом через сеть...

Ноутбук работает только с Wi Fi роутера дома, в кафе не работает и везде. Почему?
Подскажите пожалуйста, почему у меня ноутбук с виндой 7, работает вай фай только дома с роутера. А...

Надо понять правильно работает код или нет. И работает ли он вообще
Он должен вычислить сумму с точностью эпсилон #include &lt;iostream&gt; using namespace std; ...

Работа с excel: 11 версия не работает с 2010 офисом, но работает с 2007, 2013
Имеются несколько Microsoft.Office.Interop.Excel.dll,которые используются для записи в excel...


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

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

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