I like this talk on exception handling from one of my college teacher :
I don't always catch, but when I do it's because I set up something like:
throw std::runtime_error("class::func() - Failed to load the thing");
and then I catch-all in main() and print out the message.
You could do the same with logging and probably get more information. I only really care when it's things like not finding a file where it's expected.