На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Qraizer, Hsilgos
  
> Исключение в функции
    Всем привет!

    Возник небольшой уточняющий вопрос по исключениям.
    Когда то давно наткнулся на такой код:
    http://ideone.com/nyHuUZ
    ExpandedWrap disabled
      #include <iostream>
       
      void SomeFunc() try
      {
          {
              throw "Some error";
          }
      }
      catch(const char* error)
      {
          std::cout << "Exception: \'" << error << "\' is occured in " << __FUNCTION__ << std::endl;
      }
       
      int main()
      {
          SomeFunc();
          // your code goes here
          return 0;
      }

    Помню мне объясняли что такой синтаксис помогает ловить исключения в конструкторах при множественном наследовании.
    Так вот вопрос - как называются такого рода исключения? И можно ли их так же использовать при такого рода конструкциях?
    ExpandedWrap disabled
      bool SomeFunc() try
      {
          {
              return SomeExpr;
          }
      }
      catch(const char* error)
      {
          std::cout << "Exception: \'" << error << "\' is occured in " << __FUNCTION__ << std::endl;
      }

    Или они тут не к месту?
      Это называется function-try-block. И это не исключения, а именно способ оформления try-выражения. Ты можешь использовать этот синтаксис везде, где допустимо использовать обычное составное выражение.
        Ясно. Спасибо.
          function-try-block. Я как-то тему создавал про него.
            Да, паходу я об этом тоже узнал из твоей темы. Просто подзабыл как это называется чтоб погуглить :D
            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0260 ]   [ 16 queries used ]   [ Generated: 16.04.24, 14:29 GMT ]