Jak wyrzucić std :: wyjątki ze zmiennymi wiadomościami?

To jest przykład tego, co często robię, gdy chcę dodać pewne informacje do wyjątku:

std::stringstream errMsg;
errMsg << "Could not load config file '" << configfile << "'";
throw std::exception(errMsg.str().c_str());

Czy jest na to lepszy sposób?