1

我目前正在使用 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在作用域之后抛出异常

你有什么提示吗?我应该重载流类并在刷新流时抛出异常吗?

4

0 回答 0