MISRA C++:2008 Rule 15-5-2

Если объявление функции включает спецификацию исключения, функция должна быть способна выдавать только исключения указанного типа (типов)

Описание

Определение правила

Если заявление функции включает спецификацию исключения, то функция должна быть способна выдавать только исключения указанного типа (типов).

Реализация Polyspace

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

Для образца:

void goo ( ) throw ( Exception )
  { 
    throw 21; // Non-compliant - int is not listed
  }    

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

Шашка не обнаруживает throw операторы внутри catch блоки.

Поиск и устранение проблем

Если вы ожидаете нарушения правил, но не видите его, обратитесь к разделу «Стандартные нарушения кодирования не отображаются».

Проверяйте информацию

Группа: Обработка исключений
Категория: Требуемая
Введенный в R2013b