1

書き込み操作が途中で例外をスローするとします。ファイルにデータが書き込まれているか、ファイルにデータが書き込まれていないか?

4

2 に答える 2

1

CFile の内部を表示できないため (または、適切にカプセル化されている場合は表示しないでください)、API の「コントラクト」に依存する必要があります。言い換えれば、特定の場合に何が起こるかをドキュメントが具体的に示していない限り、それを信頼することはできません.

ソースコードがあり、それを理解できたとしても、API 仕様は契約であり、そこで指定されていないものはいつでも変更される可能性があります。これが、一部のソフトウェア開発者が内部の公開に慎重になる理由の 1 つです。

例外が発生した後にファイルが既知の状態になることを本当に確認したい場合は、動作を回避するコードを作成する必要があります。これは次のようになります。

  • プログラムの起動時にファイルをバックアップする (簡単) ; また
  • 各保存操作の前にバックアップします (それでも比較的簡単です)。また
  • 書き込み操作の前にバックアップします(複雑で遅い)。
于 2008-12-01T03:22:55.307 に答える
0

簡単な回答: 書き込み操作の開始時にディスクがいっぱいでない限り、ほとんどの場合、一部のデータがファイルに書き込まれます。

より長い答え: Write 呼び出しからスローされる CFileException によって異なります。

http://msdn.microsoft.com/en-us/library/as5cs056(VS.80).aspx

于 2008-12-01T03:11:40.010 に答える