exponenta event banner

Проверка и исправление функции, не возвращающей проверки стоимости

Выполните один или несколько из этих шагов до тех пор, пока не будет определено исправление для проверки «Функция не возвращает значение». Описание проверки и примеры кода см. в разделе Function not returning value.

Общий рабочий процесс, применяемый ко всем проверкам, см. в разделе Интерпретация результатов проверки кода в пользовательском интерфейсе Polyspace Desktop.

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

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

Вы можете видеть:

  • Непосредственная причина проверки.

    В этом примере программное обеспечение идентифицировало, что функция сvoid тип возврата может не иметь return заявление.

  • Вероятная первопричина проверки, если она указана.

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

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

Определите, почему return инструкция не существует на определенных путях выполнения.

  1. Просмотр тела функции для return заявления.

  2. Если вы найдете return заявление:

    1. Посмотрите, если return оператор находится в блоке внутри функции.

      Например, return оператор возникает в if блок. Путь выполнения, который не входит в if блок обходит return заявление.

    2. Проверьте, можно ли определить пути выполнения, которые обходят return заявление.

      Например, if блок, содержащий return оператор обходится для определенных входов функций.

    3. Если функция вызывается несколько раз в коде, можно определить, какой вызов функции привел к обходу return заявление. Используйте опцию Контекст чувствительности, чтобы определить цвет проверки для каждого вызова функции.

Возможное исправление: Если возвращаемый тип функции неверен, измените его. В противном случае добавьте return оператор на всех путях выполнения. Например, если только доля ветвей if-else if-else условие имеют return оператор, добавить return в остальных ветвях. Либо добавьте return заявление за пределами if-else if-else состояние.