例えばコンストラクタ内で

member1 = new char[100];
if (member1 == NULL) throw std::bad_alloc();
member2 = new char[200];
if (member2 == NULL) throw std::bad_alloc();

とかやるとまずいよなぁ、ってのが
コンストラクタ内での例外に慎重になってた原因の一つ。