Это спецификация исключений .Это означает, что ваша функция сообщает всем, что она имеет ограниченный список вещей, которые она может выдать.К сожалению или нет, но ничто не мешает вам на самом деле выбросить что-либо еще из функции, но если во время выполнения выдается что-то неожиданное, то будет вызван unexpected()
Спецификации исключений были удалены в новом стандарте C ++.
void f() throw(); //I promise not to throw anything
void g() throw(A, B, C); // I promise not to throw anything except for A, B, or C
В отличие от квалификаторов const, спецификация исключения не является частью типа функции.