Какова цель функционального блока try? [Дубликат]

Возможный дубликат:
Когда полезна функция try block?
Разница между синтаксисом try-catch для функции

Этот код бросаетint исключение при построенииDog объект внутри классаUseResources,int исключение поймано нормальнымtry-catch блок и код выходов:

Cat()  
Dog()  
~Cat()  
Inside handler

#include <iostream>
using namespace std;

class Cat
{
    public:
    Cat() { cout << "Cat()" << endl; }
    ~Cat() { cout << "~Cat()" << endl; }
};

class Dog
{
    public:
    Dog() { cout << "Dog()" << endl; throw 1; }
    ~Dog() { cout << "~Dog()" << endl; }
};

class UseResources
{
    class Cat cat;
    class Dog dog;

    public:
    UseResources() : cat(), dog() { cout << "UseResources()" << endl; }
    ~UseResources() { cout << "~UseResources()" << endl; }
};

int main()
{
    try
    {
        UseResources ur;
    }
    catch( int )
    {
        cout << "Inside handler" << endl;
    }
}

Теперь, если мы заменим определениеUseResources() конструктор, с тем, который используетfunction try blockкак показано ниже,

UseResources() try : cat(), dog() { cout << "UseResources()" << endl; } catch(int) {}

выход такой же

Cat()  
Dog()  
~Cat()  
Inside handler 

т.е. с точно таким же конечным результатом.

Какова же тогда цельfunction try block ?

Ответы на вопрос(2)

Ваш ответ на вопрос