2

CStdioFile::Open が失敗した場合、エラーの原因を報告できるようにしたいと考えています。

ただし、例外がスローされないように見えます。また、次のことを試すと:

CStdioFile file;

CFileException exc;
bool bSuccess = (file.Open(_T("FileDNE"), _O_RDONLY, &exc) == TRUE);
ASSERT_FALSE(bSuccess);

CString err;
exc.GetErrorMessage(err.GetBufferSetLength(255), 255);
std::cout << CStringA(err);

アサーションは、exc.GetErrorMessage の下位のどこかでトリップします。

ASSERT(afxCurrentResourceHandle != NULL);

これは、try-catch ブロックを使用しない場合に発生することを読みました。しかし、Open が例外をスローしないのに、なぜ try-catch ブロックを使用するのでしょうか?

オープンエラーを報告する方法についてのアイデアは役に立ちます!

4

1 に答える 1

1

CStdioFile::CStdioFileの例を参照してください。

于 2010-07-26T19:34:32.520 に答える