Повреждение файла при десериализации, как предотвратить сбой? - PullRequest
4 голосов
/ 10 мая 2011

Я использую библиотеку надстрочных графов для работы с графами. Я использую boost :: serialization, чтобы записать свой график в файл.

В целях тестирования я изменил целостность файла. Теперь моя программа все время зависала. Мне было интересно, есть ли способ предотвратить сбой (boost :: serialization не вызывает исключений).

А в более общем случае для любого типа файла без исключения, генерируемого при разборе, где все должно быть правильным, есть ли способ?

Может быть, единственным решением является написание пользовательских функций сериализации / десериализации с обработкой исключений?

Спасибо!

Edit: Boost :: archive :: archive_exception, когда все данные повреждены или файл отсутствует. Но если изменяется только определенная часть файла, он вылетает ...

Edit2: я должен поймать исключение input_stream_error, но я не поймаю.

1 Ответ

1 голос
/ 10 мая 2011

A boost::archive_exception также генерируется в других ситуациях, кроме повреждения всех данных или отсутствующего файла. См. Архив исключений для получения подробной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...