从CStdioFile :: Open()获取错误消息?

时间:2010-07-26 19:00:25

标签: visual-c++ mfc exception-handling error-handling cfile

如果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块会抛出任何异常呢?

有关如何报告Open错误的任何想法都会有所帮助!

1 个答案:

答案 0 :(得分:1)

请参阅CStdioFile::CStdioFile示例。