Выбрасывание и ловля исключения.
#include <iostream> // std::cout
#include <stdexcept> // std::overflow_error
void func(int i){
if(i > 10){ // Если аргумент больше 10
return throw std::overflow_error("too big"); // Выбрасываем исключение
}
std::cout << i << '\n'; // Выводим аргумент
}
int main(){
try{ // Блок кода в котором ловим исключение
func(9); // 9 (Исключения не было)
func(11); // too big (Произошло исключение)
}
catch(std::overflow_error &e){ // Ловим исключение std::overflow_error
std::cout << e.what(); // Выводим сообщение об исключении при его возникновении
}
}
/* Вывод программы
9
too big
*/
Ловить все исключения можно одной из конструкций
catch(...){}
catch(std::exception e){}