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

Отловить деление на ноль - C++

Восстановить пароль Регистрация
 
phtnr
1 / 1 / 1
Регистрация: 31.03.2014
Сообщений: 62
13.07.2014, 01:21     Отловить деление на ноль #1
Как в программа отловить деление на ноль? Есть программа в которой за тактов 500 выпадает такая ошибка, нужно определить в каком месте она возникает. с try/catch чет не очень получается.
ide - builder 10
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Убежденный
Системный программист
 Аватар для Убежденный
14191 / 6206 / 985
Регистрация: 02.05.2013
Сообщений: 10,339
Завершенные тесты: 1
13.07.2014, 01:55     Отловить деление на ноль #2
SetUnhandledExceptionFilter function
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx

В обработчике снять крэш-дамп (MiniDumpWriteDump), затем открыть его в
отладчике и найти проблемное место.
Nummerok
19 / 19 / 2
Регистрация: 30.05.2014
Сообщений: 431
13.07.2014, 01:55     Отловить деление на ноль #3
Вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <conio.h>
#include<windows.h>
 
using namespace std;
 
int main(){
    int num1,num2,num3;
    cin >> num1 >> num2;
    __try {
        num3=num1/num2;
        cout<<num3;
    }__except (EXCEPTION_EXECUTE_HANDLER) {
        cout<<"exception\n";
        _getch();
    }
    _getch();
    return 0;
}
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
13.07.2014, 01:56     Отловить деление на ноль #4
Цитата Сообщение от phtnr Посмотреть сообщение
с try/catch чет не очень получается.
try-catch для программных ошибок, для аппаратных SEH http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
Nummerok
19 / 19 / 2
Регистрация: 30.05.2014
Сообщений: 431
13.07.2014, 02:04     Отловить деление на ноль #5
Jupiter, я ему же это выше написал :-)
Уже кодом готовым только
Psilon
Master of Orion
 Аватар для Psilon
5738 / 4686 / 619
Регистрация: 10.07.2011
Сообщений: 14,160
Записей в блоге: 5
Завершенные тесты: 4
13.07.2014, 02:33     Отловить деление на ноль #6
phtnr, а чем не устроила обычная проверка?
C++
1
2
if (denom == 0)
  //something
Yandex
Объявления
13.07.2014, 02:33     Отловить деление на ноль
Ответ Создать тему
Опции темы

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