ロベールのC++入門講座 10-08 コンストラクタの初期化子で発生した例外をキャッチする方法として関数tryブロックというものがあります。 #include <iostream> #include <string> using std::cout; using std::endl; class CSample { public: CSample (std::string str) try: m_str(str) { cout << "コンストラクタ" << endl; } catch (const std::bad_alloc& e) { // std::stringのメモリ確保に失敗した場合にここにくる } private: std::string m_str; }; int main () { CSample obj("str"); return 0; } 上記のようにm_strの初