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

时间:2011-05-10 09:58:12

标签: c++ serialization boost crash

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

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

更常见的是,对于任何类型的文件,在解析时都没有抛出异常,其中所有文件都应该是正确的,还有一种方法吗?

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

谢谢!

编辑:当所有数据损坏或文件丢失时,有一个boost :: archive :: archive_exception。但如果只更改了文件的某些部分,它就会崩溃......

Edit2:我应该抓住input_stream_error异常,但我没有。

1 个答案:

答案 0 :(得分:1)

除了整个数据或丢失文件的损坏之外,还会抛出boost::archive_exception。有关详细信息,请参阅Archive Exceptions