Question

I'm writing unit tests using Boost.Test against some old C math library. One of tested functions in known to raise Integer Division By Zero system exception for some specified input. Let's say it's desired behavior and I want to write negative test for this case.

BOOST_REQUIRE_THROW(statement, exception); is not working for me as it is not C++ style exception (this macro is using try {} catch {} internally).

What is the correct way to handle case when I'm expecting failure on system level?

Was it helpful?

Solution

Since it's Windows, I suggest looking into _set_se_translator() Windows API. It allows to handle Structured Exception with C++ catch.

There are other possible ways, such is installing your handlers, but this one allows uniform exception handling as if they were C++ exceptions with minimal programming effort.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top