反序列化中的文件损坏,如何防止崩溃

File corruption in de-serialization, how to prevent a crash?

本文关键字:何防止 崩溃 损坏 文件 反序列化      更新时间:2023-10-16

我正在使用提升图库来处理图。我使用 boost::serialization 将我的图形写入文件。

出于测试目的,我修改了文件的完整性。现在我的程序一直在崩溃。我想知道有没有办法防止崩溃(boost::序列化不会引发异常)。

更一般地说,对于任何类型的文件,在解析中没有抛出异常,一切都应该是正确的,有没有办法?

也许唯一的解决方案是编写带有异常处理的自定义序列化/反序列化函数?

谢谢!

编辑:当

所有数据损坏或文件丢失时,有一个提升::存档::archive_exception。但是,如果仅更改了文件的某些部分,它就会崩溃...

编辑2:我应该抓住input_stream_error例外,但我没有。

在其他情况下也会抛出boost::archive_exception,而不是整个数据损坏或文件丢失。有关详细信息,请参阅存档例外。