Исключение ловится дважды

class A{
    public:
        A() { throw string("exception A"); };
};

class B{
    A a;
    public:
        B() try : a() {} catch(string& s) { cout << &s << " " << s << endl; };
};

int main(){    
    try{
        B b;
    }catch(string& s){
        cout << &s << " " << s << endl;
    }
    return 0;
}

Выход:

0x32c88 exception A
0x32c88 exception A

Поскольку исключение было уже поймано в конструктореBпочему это все еще происходит в основной функции?

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

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