如果抛出异常指针,谷歌测试中的EXPECT_THROW可以捕获此异常吗?

时间:2013-11-08 14:55:32

标签: googletest

例如,我有一个代码:

TEST_F(Testmyexception, testthrownexception)
{
  EXPECT_THROW(throw new myexception(), myexception);
} 

编译并运行后,会出错:实际:它会抛出不同的类型。

有没有人知道答案?

谢谢,

2 个答案:

答案 0 :(得分:9)

你正在向myexception投掷一个指针,所以你必须要在支票中指出一个指针:

EXPECT_THROW(throw new myexception(), myexception*);

答案 1 :(得分:5)

我想你想要:

EXPECT_THROW(throw std::underflow_error(""), std::underflow_error);

BTW抛出myexception实例的语法是:

throw myexception();

" new"不应该在这里使用关键字。