问题描述
|
尝试创建ASSERT_EXIT对象时遇到段错误,该错误会针对诸如此类的错误参数抛出自定义异常:
ASSERT_EXIT( MyObj(1,2,3),::testing::ExitedWithCode(1),\"\");
正在创建的类如下所示:
class MyObj
{
public:
MyObj(int a,int b,int c) { if( a < b ) throw MyException(\"Error\"); }
}
自定义异常如下所示:
class MyException : public std::invalid_argument
{
public:
MyException(std::string s) { /* do some logging */ exit(1); }
};
有解决方法还是更好的方法?
谢谢
解决方法
如果您期望必须终止您的应用程序的未处理异常(例如从nothrow成员抛出或显式调用exit),请考虑ASSERT_DEATH。
或ASSERT_THROW(如果您有正常例外)