Шаг 255.
Среда программирования Visual C++.
Регистрация ошибок

    На этом шаге мы рассмотрим еще один способ борьбы с ошибками.

    В шагах 249 и 250 описаны способы обработки ошибок. Но так как нельзя предвидеть все ошибки, необходимо сохранять информацию о неожиданных сбоях. На этом шаге Вы узнаете о третьем способе борьбы с ошибками. Это обычная регистрация всех сбоев без принятия каких-либо мер по их исправлению. Изучив полученные таким образом записи, Вы получите возможность изменить код программы и исправить выявленные ошибки.

    В этом методе обнаружения ошибок используется макрос TRACE и некоторые его разновидности. Многие программисты на С организуют нечто похожее с помощью оператора printf(), печатающего комментарии по мере выполнения программы, например, так:

Начало функции Function1 
Выделение памяти 
Память успешно выделена
.   .   .   .
Выход из функции Function1

    Макрос TRACE регистрирует ошибки и отображает сообщения них в месте, указанном в AfxDump (по умолчанию на вкладке Debug окна Output). Этот макрос работает только в отладочной версии программы. В финальной версии он определяется пустым, поэтому размер кода приложения не увеличивается.

    Макрос TRACE принимает такие же параметры, как и printf(), поэтому он отображает переменные, что продемонстрировано в следующем примере:

irit iFileSize = 10;
char sz [] = "kilobytes";
//Отображение строки "File size is 10 kilobytes "
TRACE("File size is %d %s \n",iFileSize,sz);

    Длина строки не может превышать 512 символов, включая завершающий NULL. В MFC есть макросы TRACE0, TRACE1, TRACE2 и TRACE3, принимающие фиксированное количество параметров (0, 1, 2 или 3 соответственно). Единственное их преимущество - более компактный код.

    Дополнительную информацию по макросу TRACE можно получить здесь.

    На следующем шаге мы рассмотрим ошибки COM-компонентов.




Предыдущий шаг Содержание Следующий шаг