Возникновение и перехватывание особой ситуации влияет навзаимодействие функций. Список особых ситуаций, которые прямо иликосвенно может запустить данная функция, можно задать как часть ееописания. Конструкция спецификация-особой-ситуациипредшествует описателю функции. спецификация-особой-ситуации: throw (список-типов opt) список-типов: имя-типа список-типов, имя-типа Приведем пример: void f() throw (X,Y) { //... } Если функция попробует запустить неуказанную в списке ситуацию,управление передается функции unexpected(), см. $$R.15.8. Реализация языка не должна запрещать выражение только потому,что при его вычислении возможен запуск особой ситуации, не указаннойв спецификации-особой ситуации описания функции. Обработка непредвиденныхособых ситуаций происходит в динамике. Функция, в которой отсутствует спецификация-особой-ситуации,может запустить любую особую ситуацию. Функция с пустой спецификацией-особых-ситуаций (throw()) не должназапускать никаких особых ситуаций. Если функция может запустить особую ситуацию класса X, то онаможет запустить особую ситуацию любого класса, являющегося общимпроизводным классом от X. Конструкция спецификация-особой-ситуации не относится к типуфункции.