Поделиться через


Утверждение и Пользователь- Предоставленных сообщения (C++)

Язык C++ 3 поддерживает механизм обработки ошибок, позволяющие отлаживать приложение. директива #error" static_assert ключевое слово и assert (CRT) макрос.Все 3 механизма выдают сообщения об ошибках и 2 также проверяют утверждения программного обеспечения.Утверждение программного обеспечения задает условие, которое ожидается, что выполнены в определенной точке в программе.Если утверждение время компиляции происходит сбой, то компилятор выдает диагностическое сообщение и ошибку компиляции.Если утверждение среды выполнения происходит ошибка, то проблемы, связанные с операционной системы, диагностическое сообщение и закрыть приложение.

Заметки

Время существования приложения состоит из предварительной обработки, будет компилироваться и этапа выполнения.К каждому механизма обработки ошибок отладочные данные, доступные во время одного из следующих действий.Для отладки эффективно выберите механизм, который предоставляет соответствующие сведения об этом шаге.

  • директива #error в результате во время предварительной обработки.Это безусловно выдает указанное пользователем сообщения и вызывает компиляцию завершиться ошибкой.Сообщение может содержать текст, манипулировано директивами препроцессора, но любое результирующее выражение не вычисляется.

  • static_assert объявление в силе во время компиляции.Она проверяет утверждения программного обеспечения, которое представлено пользователь-определенным объединенным выражение, которое можно преобразовать в логическое значение.Если выражение имеет значение нуль (false), то компилятор выдает указанное пользователем сообщение и происходит сбой компиляции с ошибкой.

    static_assert объявление особенно полезно для отладки шаблоны, так как аргументы шаблонов можно включить в указанном пользователем выражении.

  • assert (CRT) макрос в силе во время выполнения.Он устанавливает указанное пользователем выражение, а если результат равен нулю, то проблем системы диагностическое сообщение и закрыть приложение.Многие другие макросы, например_ASSERT и _ASSERTEпоходите этот макрос, но выполните различные системные или определенные пользователем диагностические сообщения.

См. также

Ссылки

директива #error (C/C++)

assert (CRT)

_ASSERT _ASSERTE - макрос

static_assert

макрос _STATIC_ASSERT

Другие ресурсы

Шаблоны