Why not catch the std::exception, any thing can happen in that function!