it's better to catch ( const std::exception& e )