Как получить больше информации об исключении boost :: xml_archive

Привет, я написал код, который сериализует некоторый объект в XML, а затем пытается десериализовать его из файла. Это работает, но вдруг я получаю

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

Так что, наверное, я где-то совершил серьезное изменение. Проблема в том, что boost не дает мне больше информации, есть ли способ (возможно, флаг компилятора?), Чтобы получить больше информации об ошибке?

Я использую G ++, и Boost v1.46

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
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]