gpt4 book ai didi

c++ - 如果 CFile::Write 抛出异常会发生什么?

转载 作者:太空宇宙 更新时间:2023-11-04 12:28:43 25 4
gpt4 key购买 nike

假设写操作中途抛出异常。文件中是否有数据写入,或者文件中没有写入数据?

最佳答案

由于您没有 CFile 的内部 View (或者不应该,如果它被正确封装),您需要依赖 API 的“契约”。换句话说,除非文档具体告诉您在某些情况下会发生什么,否则您不能依赖它。

即使您拥有源代码并且可以弄清楚,API 规范 也是契约(Contract),任何未指定的内容都可能随时更改。这就是为什么一些软件开发人员对发布内部结构持谨慎态度的原因之一,因为这会被视为将他们永远锁定在支持内部结构中。

如果您真的想确保您的文件在异常发生后处于已知状态,则需要围绕该行为进行编码。这可能是这样的:

  • 在程序启动时备份文件(简单);或
  • 在每次保存操作之前备份它(仍然相对简单);或
  • 在任何写入操作之前对其进行备份(复杂且缓慢)。

关于c++ - 如果 CFile::Write 抛出异常会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/329899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com