Мне интересно, когда программисты используют функциональные блоки try. Когда это полезно?
void f(int i)
try
{
if ( i < 0 )
throw "less than zero";
std::cout << "greater than zero" << std::endl;
}
catch(const char* e)
{
std::cout << e << std::endl;
}
int main() {
f(1);
f(-1);
return 0;
}
Вывод: (at ideone )
greater than zero
less than zero
РЕДАКТИРОВАТЬ: Некоторые люди могут подумать, что синтаксис определения функции неверен (потому что синтаксис не выглядит знакомым), я Надо сказать, что это не неправильно. Это называется функция-попытка-блок. См. §8.4 / 1 [dcl.fct.def] в стандарте C ++.