我目前正在使用caffe,但我遇到了问题。有时库会调用LOG(FATAL)
,但我想提出异常并抓住它。
我试图按照以下定义自己的类:
#include <stdexcept>
#include <iostream>
#include <sstream>
class FatalException
{
private:
std::stringstream _ss;
public:
template<typename T>
std::ostream& operator<<(const T& obj){
_ss << obj;
return _ss;
}
~FatalException(){
throw std::runtime_error(_ss.str().c_str());
}
};
问题在于我正在进行一些测试,例如
int main() {
try {
FatalException() << "test";
}
catch(...) {
std::cout << "here" << std::endl;
}
}
在try
范围
你有任何提示吗? 我是否应该重载流类并在刷新流时抛出异常?