exponenta event banner

MISRA C++: Правило 2008 15-5-2

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

Описание

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

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

Внедрение Polyspace

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

Например:

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

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

Средство проверки не обнаруживает throw утверждения внутри catch блоки.

Поиск неисправностей

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

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

Группа: Обработка особых ситуаций
Категория: Обязательно
Представлен в R2013b