Получение сообщения об ошибке из CStdioFile :: Open ()? - PullRequest
2 голосов
/ 26 июля 2010

Если произошел сбой 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.Но зачем использовать блок try-catch, когда Open не выдает никаких исключений?

Любые идеи о том, как сообщать об ошибках Open, будут полезны!

1 Ответ

1 голос
/ 26 июля 2010

См. CStdioFile :: CStdioFile примеры.

...