Eri*_*ric 6 c++ testing boost exception
我正在使用boost测试框架1.47而且我在测试异常时遇到了困难
这是我的异常课程
class VideoCaptureException : public std::exception
{
std::string m_Description;
public:
VideoCaptureException(const char* description)
{
m_Description = std::string(description);
}
VideoCaptureException(const std::string& description)
{
m_Description = description;
}
virtual ~VideoCaptureException() throw() {}
virtual const char* what() const throw()
{
return m_Description.c_str();
}
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试测试只是抛出此异常的代码
BOOST_CHECK_THROW( source.StopCapture(), VideoCaptureException )
Run Code Online (Sandbox Code Playgroud)
由于某种原因,它不起作用.
unknown location(0): fatal error in "testVideoCaptureSource": unknown type
testVideoCaptureSource.cpp(28): last checkpoint
Run Code Online (Sandbox Code Playgroud)
我做错了什么?
在我自己遇到这个错误之后,我将其追踪到一个愚蠢但容易犯错的错误:
throw new VideoCaptureException( "uh-oh" );
Run Code Online (Sandbox Code Playgroud)
将失败并显示该错误消息,同时:
throw VideoCaptureException( "uh-oh" );
Run Code Online (Sandbox Code Playgroud)
将会成功.
该new变量导致捕获异常的指针,而不是异常本身.boost库不知道该怎么做,所以它只是说"未知类型".
如果图书馆正确解释了这种情况会很好,但希望其他任何人遇到"致命错误:未知类型"会找到这个页面并看看如何解决它!