Просмотр и исправление неоткрытых проверок исключений

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

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

Выберите проверку на панели Results List. На панели Result Details просмотрите дополнительные сведения о проверке.

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

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

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

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

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

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

  • main

  • getValueFromVector

  • initialVector::getValue

Список событий показывает эти точки в коде:

  1. Оператор, выдающий исключение.

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

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

  4. The main функция.

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

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