用异常替换LOG(致命)

时间:2016-05-09 16:51:19

标签: c++ glog

我目前正在使用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范围

之后抛出异常

你有任何提示吗? 我是否应该重载流类并在刷新流时抛出异常?

0 个答案:

没有答案