如果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错误的任何想法都会有所帮助!