Могу ли я получить исключение, когда операция возвращает 0. # INF - PullRequest
2 голосов
/ 28 января 2011

Есть ли в MS VS2008 какие-либо настройки для генерации исключения, если операция возвращает 0. # INF? Использование обычной отладки не помогает мне, потому что я не могу понять, где это произошло.

Ответы [ 2 ]

2 голосов
/ 28 января 2011

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

#include "stdafx.h"
#include <float.h>


int _tmain(int argc, _TCHAR* argv[])
{
#ifdef _DEBUG
    _control87( ~_EM_ZERODIVIDE, _MCW_EM );
#endif
    double value = 1;
    value /= 0;   // kaboom
    return 0;
}

Используйте это только для диагностики ошибки.Изменение управляющего слова FPU очень дестабилизирует библиотеки, которые ожидают, что FPU будет иметь инициализацию по умолчанию.

0 голосов
/ 28 января 2011

Существует Включить исключения с плавающей точкой в C / C ++ -> Генерация кода в свойствах ваших приложений

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...