我目前正在使用 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
在作用域之后抛出异常
你有什么提示吗?我应该重载流类并在刷新流时抛出异常吗?