Мне интересно, когда программисты используют функциональные блоки 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
EDIT: Как некоторые люди могут подумать, что синтаксис функции defintion неверен (поскольку синтаксис не выглядит привычным), я должен сказать, что нет его неправильного. Его называют функцией-try-block. См. §8.4/1 [dcl.fct.def] в стандарте С++.