У меня есть блок кода, который я установил для проверки ошибок после запуска функции.Но этот блок кода сам вызывает проблемы.
ErrorType *error;
CreateObject(..., &error); // Function argument is ErrorType**
if (error) // nullptr if no error
{
log << "Error details here." << std::endl;
log.close();
return false; // Causes application to PROPERLY quit
}
Отладчик выдает мне сообщение об ошибке «нарушение доступа к памяти, строка 3» довольно часто, и половину времени, без использования отладчика, этот код вызывает CTDв то время как в других случаях он выполняется просто отлично (при запуске отладчика я могу просто нажать «Продолжить» несколько раз, пока блок не будет выполнен как задумано.) Нужно ли указывать что-то вроде if (error != nullptr)
, чтобы заставить его работать должным образом?Почему этот блок проверки ошибок вызывает ошибки и как их исправить?
Обратите внимание, что CreateObject()
- это функция внешнего API, которая не выдает никаких исключений.