Можно перехватить почти всё, но никаких дополнительных данных не будет. Либо перехватить по очереди несколько типов исключений. Плюс есть структурные исключения, которые catch не перехватит.
try
{
}
catch( std::exception & e )
{
// только тип std::exception
}
catch(...)
{
// все прочие типы
}