0

嗨,我编写了一些代码,将某些对象序列化为 xml,然后尝试从文件中反序列化它。这一直在工作,但突然间我得到了一个

terminate called after throwing an instance of 'boost::archive::archive_exception'
  what():  input stream error

所以我想我一定是在某处做出了重大改变。问题是 boost 没有给我更多信息,有没有办法(也许是编译器标志?)来获取有关错误的更多信息?

我正在使用 G++,并提升 v1.46

4

1 回答 1

0

您可以将归档函数包含在 try catch 块中,并在出现异常时进行日志记录。

我已经这样做了:

#if LIBRARY_DEBUG
    #define ARCHIVE_TRY try {
    #define ARCHIVE_CATCH } \
        catch(const std::exception& e) { \
            STACK_TRACE; \
            LOG_ERROR(std::string("Exception: "  + e.what())); \
            throw e; \
        }
#else
    #define ARCHIVE_TRY
    #define ARCHIVE_CATCH
#endif
于 2013-08-23T11:13:37.840 回答