ООП. Try{}catch{}

Тема в разделе "Общие вопросы по С и С++", создана пользователем midnight, 19 янв 2008.

Статус темы:
Закрыта.
  1. midnight

    midnight Гость

    Привет, нам препод по ООП задал вопрос, подскажите, пожалуйста, ответ.
    Код (Text):
    try{/*...*/}
    catch(exception)
    {
    /*...*/
    try{/*...*/}
    catch(exception)
    {/*...*/}
    }
    Почему без внутреннего catch не будет работать? Причем в обоих catch исключения одинаковые!
    Буду оч признательна!
     
  2. Pasha

    Pasha Гость

    Для: midnight
    Идея конструкции примерна такая:
    try { если здесь произойдет исключение } catch (вот такого вот типа ) { то выполнить следующий код }
    Т.е. эксепшены ловятся только в блоке try. Если бы они ловились еще и в catch, то нельзя было бы перебросить пойманный эксепшн.
     
  3. midnight

    midnight Гость

    Прошу прощения. Немного другой вопрос.
    Код (Text):
    try
    {
    }
    catch(Exception &exception)
    {
    }
    catch(...)
    {
    try
    {
    }
    catch(Exception &exception)
    {
    }
    }
    вопрос слд, почему исключение &exception может возникать в catch(...) , если мы уже проверили его наличие?
    Заранее спасибо)
     
  4. gamecreator

    gamecreator Гость

    у меня все ок.
     
  5. Pasha

    Pasha Гость

    <!--QuoteBegin-midnight+20:01:2008, 17:43 -->
    <span class="vbquote">(midnight @ 20:01:2008, 17:43 )</span><!--QuoteEBegin-->вопрос слд, почему исключение &exception может возникать в catch(...) , если мы уже проверили его наличие?
    [snapback]94292" rel="nofollow" target="_blank[/snapback]​
    [/quote]Потому что "наличие", если его можно так назвать, проверяется только в пределах блока try {...}. Если бы catch тоже "ловил" исключения внутри себя, то:
    1. Нельзя было бы перебросить пойманное исключение еще выше.
    2. Любое исключение типа Exception в блоке catch приводило бы к бесконечному циклу.
     
  6. midnight

    midnight Гость

    Почему не правильный код? Если создать простую форму в Builder 6, в Project1.cpp как такой код будет.

    Спасибо большое!!!!
     
Загрузка...
Похожие Темы - ООП Try{}catch{}
  1. Trafik
    Ответов:
    0
    Просмотров:
    537
  2. NLP
    Ответов:
    10
    Просмотров:
    3.561
  3. Sevas
    Ответов:
    1
    Просмотров:
    1.060
  4. Shouldercannon
    Ответов:
    1
    Просмотров:
    2.327
  5. akat
    Ответов:
    11
    Просмотров:
    5.290
Статус темы:
Закрыта.

Поделиться этой страницей