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

Выполните один или несколько из этих шагов, пока вы не определите фиксацию для проверки 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.