我正在使用Boost.Test针对一些旧的C数学库编写单元测试。某些特定输入的已知测试功能之一会引发Integer Division By Zero系统异常。假设这是理想的行为,并且我想针对这种情况编写负面测试。BOOST_REQUIRE_THROW(statement, exception);
对我不起作用,因为它不是C++样式异常(此宏在内部使用try {} catch {}
)。
当我期望系统级别的故障时,处理案件的正确方法是什么?
最佳答案
由于它是Windows,因此建议您查看_set_se_translator() Windows API。它允许使用C++ catch
处理结构化异常。
还有其他可能的方法,例如安装处理程序,但是这种方法允许统一的异常处理,就好像它们是C++异常一样,而无需花费太多编程精力。
关于c++ - 如何使用Boost.Test库处理Integer Division By Zero异常?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8482490/