ma perchè non sarebbe meglio fare cosi:

codice:
for(auto it=in.begin(); it!=in.end(); it++) {
        if (contieneSpazzatura(in))
            //segnala
        else
             output.push_back(boost::lexical_cast<int>(in));
}
cioè io non oso immaginare quanta "complessità" possa aggiungere ogni volta questo try catch se lo usaimo spesso in un pezzo di codice =/

thx per i chiarimetni