我正在使用Boost.Test对一些旧的C数学库编写单元测试。已知的一种已测试函数,用于针对某些指定输入引发Integer Division By Zero系统异常。让我们说这是理想的行为,我想为这个案例写负面测试。
BOOST_REQUIRE_THROW(statement, exception);
对我不起作用,因为它不是C ++样式异常(此宏在内部使用try {} catch {}
)。
当我预计系统级别出现故障时,处理案例的正确方法是什么?
答案 0 :(得分:1)
由于它是Windows,我建议调查_set_se_translator() Windows API。它允许使用C ++ catch
来处理结构化异常。
还有其他一些可能的方法,例如安装处理程序,但是这个方法允许统一的异常处理,就像它们是C ++异常一样,只需要很少的编程工作。