我正在使用 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/