Рассмотрите и зафиксируйте проверки неперехваченного исключения

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

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

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

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

СообщениеЧто это означает
Необработанное исключение распространяет к функции основной или точки входа.Исключение выдано и не обработано в catch блок. Исключение выходит к main.
Вызовите к typeName броски во время конструкции параметра "выгоды".Создание catch параметр вызывает конструктора. Конструктор выдает исключение.
Выдайте во время деструктора или удалите.Деструктор выдает исключение.
Повышенное исключение не задано в списке бросков.Функциональная подпись указывает, что только определенные типы исключительной ситуации могут быть выданы, или исключение не может быть выдано. Однако в теле функции, операция нарушает этот контракт и выдает исключение другого типа.

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

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

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

В этом примере исключение выдается в методе getValue() который называется от main функция через объект типа initialVector.

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

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

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

  3. Сайт вызова функции в main.

  4. main функция.

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

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