C++ Exceptions Function Try Blocks In constructor


The only way to catch exception in initializer list:

struct A : public B
    A() try : B(), foo(1), bar(2)
        // constructor body 
    catch (...)
        // exceptions from the initializer list and constructor are caught here
        // if no exception is thrown here
        // then the caught exception is re-thrown.
    Foo foo;
    Bar bar;