string – problema stof c++

estoy realizando un programa un tengo un problema en la parte en la que convierto un string a float. Ya que estoy leyendo un archivo muy grande de csv y es posible que los segmentos que recoja no sean validos, por ello quiero que cuando salte la exepción me cambie un boolean a false y siga el código pero lo que ocurre es que el programa se detiene. ¿Que puedo hacer?

        try {
        latitud = stof(segment(4));
        if (latitud > maxlat) {
            maxlat = latitud;
        }

        if (latitud < minlat) {
            minlat = latitud;
        }
        longitud = stof(segment(5));
        if (longitud > maxlon) {
            maxlon = longitud;
        }

        if (longitud < minlon) {
            minlon = longitud;
        }
    } catch (const char *exception) {
        datosValidos = false;
    }

La salida es RUN FAIL ERROR

terminate called after throwing an instance of 'std::invalid_argument'
  what():  stof

RUN FAILED (exit value 1, total time: 315ms)