Как обработать исключение Integer Division By Zero с помощью библиотеки Boost.Test? - PullRequest
2 голосов
/ 13 декабря 2011

Я пишу модульные тесты, используя Boost.Test против какой-то старой математической библиотеки C. Известно, что одна из проверенных функций вызвала системное исключение деления на ноль для некоторого указанного ввода. Допустим, это желаемое поведение, и я хочу написать отрицательный тест для этого случая.

BOOST_REQUIRE_THROW(statement, exception); не работает для меня, так как это не исключение в стиле C ++ (этот макрос использует try {} catch {} для внутреннего использования).

Как правильно обрабатывать случай, когда я ожидаю сбоя на системном уровне?

1 Ответ

1 голос
/ 13 декабря 2011

Поскольку это Windows, я советую изучить _set_se_translator () Windows API.Он позволяет обрабатывать структурированные исключения с помощью C ++ catch.

. Есть и другие возможные способы, такие как установка обработчиков, но этот позволяет унифицированную обработку исключений, как если бы они были исключениями C ++ с минимальными усилиями по программированию.

...