#include <iostream>

struct A {
    A() { throw "cake"; }
};

struct B : A {
    B() : A() {
        try {
            // initialize B some more
        } catch(char const* reason) {
            ::std::cout << "Could not initialize B: " << reason << "\n";
            throw;
        }
    }
};

int main() {
	B b;
}