Когда полезен блок try функции?

Мне интересно, когда программисты используют функциональные блоки 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 ++.

36
задан Rob Kennedy 2 December 2011 в 17:11
поделиться