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

标签 c++ serialization boost crash

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

出于测试目的,我修改了文件的完整性。现在我的程序总是崩溃。 我想知道有什么方法可以防止崩溃(boost::serialization 不会抛出异常)。

更一般地说,对于任何类型的文件,在解析时都不会抛出异常,所有的文件都应该是正确的,是否也有办法?

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

谢谢!

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

Edit2:我应该捕获 input_stream_error 异常,但我没有。

最佳答案

boost::archive_exception 也会在整个数据损坏或文件丢失以外的其他情况下抛出。参见 Archive Exceptions了解详情。

关于c++ - 反序列化中的文件损坏,如何防止崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5948338/

相关文章:

c++ - 在组合对之间找到共享元素的最佳方法

c++ - 哈希算法的测试台流程是什么?

c# - 使用 ServiceStack.Text 序列化接口(interface)类型列表

arrays - 如何将对象转换为字节数组(将对象转换为List <int>)

java - JPA实体可以序列化到磁盘吗?

c++ - 使用 for_each 将列表初始化为随机变量

c++ - 使用operator=和initializer_list找不到继承

c++ - 如何在顶点着色器外将顶点与模型矩阵相乘

c++ - 搜索已排序的 float 数组

c++ - 使用反向迭代器 boost ptree 失败