exponenta event banner

Проверка и исправление неподтвержденных проверок особых ситуаций

Выполните один или несколько из этих шагов, пока не определите исправление для проверки исключения Uncaught. Описание проверки и примеры кода см. в разделе Uncaught exception.

Шаг 1: Интерпретировать информацию о проверке

Выберите флажок на панели Список результатов (Results List). На панели Сведения о результатах (Result Details) просмотрите дополнительную информацию о проверке.

В сообщении для красной или оранжевой проверки исключения Uncaught обычно указывается одна из этих причин.

СообщениеЧто это означает
Необработанное исключение распространяется на основную функцию или функцию точки входа.Исключение инициируется и не обрабатывается в catch блок. Исключение переходит к main.
Звонок в typeName броски при построении параметра «ловушка».Создание catch параметр вызывает конструктор. Конструктор создает исключение.
Бросать во время деструктора или удалять.Деструктор создает исключение.

Шаг 2: Определение первопричины проверки

Наиболее распространенной первопричиной является то, что исключение распространяет иерархию вызова функции от ее источника к main функция.

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

В этом примере в методе возникает исключение initialVector::getValue который вызывается из main в этой последовательности:

  • main

  • getValueFromVector

  • initialVector::getValue

Список событий показывает в коде следующие моменты:

  1. Заявление, создающее исключение.

  2. Возврат от функции, в которой возникает исключение, в данном случае initialVector::getValue способ.

  3. Возврат от следующей функции, которую исключение распространяет на, в данном случае, getValueFromVector способ.

  4. main функция.

С помощью этого списка событий можно проследить, как происходит исключение, и разместить try-catch для обработки исключения. Например, можно выполнить вызов:

return vectorPtr->getValue(5)
в try-catch блок. В catch блок, можно перехватить исключение типа error.