Объявление функции как броска означает, что при использовании этой функции не будут выбрасываться исключения.
Скопировано из http://www.cplusplus.com/doc/tutorial/exceptions/
спецификации исключений
При объявлении функции можно ограничить исключение типа это может прямо или косвенно бросить, добавляя суффикс вбрасывание в объявлении функции:
float myfunction (char param) throw (int);
Это объявляет функцию myfunction, которая принимает один аргумент типа char и возвращает элемент типа float. Единственное исключение, которое может вызвать эта функция, является исключением типа int. Если он генерирует исключение с другим типом, прямо или косвенно, его нельзя поймать обычным обработчиком типа int.
Если этот спецификатор throw оставлен пустым без какого-либо типа, это означает, что функции не допускают исключения. Функции без спецификатора throw (регулярные функции) допускаются для исключения исключений из любого типа:
int myfunction (int param) throw(); // no exceptions allowed
int myfunction (int param); // all exceptions allowed
Следует отметить, что в настоящее время устаревшие спецификации исключений являются устаревшими. В C++ 11 (или позже) вы должны предпочесть 'noexcept' для' throw() ', а не использовать' throw (something) 'вообще. –
Предполагаю, что он использует макрос __NOTHROW, так что его можно переопределить до компилятора C++ 11 до конца. – Neil
Я думаю, что это больше, чтобы заголовки могли быть включены в программы на C или C++. У моей версии, по крайней мере, нет версии C++ 11, хотя, возможно, это будет и в будущем. –