Problems with c++ exceptions