我想做到以下幾點:如何將消息追加到std :: exception?
std::string fileName = "file";
std::ifstream in(fileName.c_str());
in.exceptions(std::istream::failbit);
try
{
loadDataFrom(in);
}
catch (std::ios_base::failure& exception)
{
std::string location = std::string(" in file\n") + fileName;
// append the "location" to the error message;
throw;
}
我如何追加錯誤消息的異常?
謝謝!但是如果catch子句捕獲一個只能繼承'std :: ios_base :: failure'的異常呢?在附加消息的同時,我能以某種方式受益於'throw;'的多態行爲嗎? –
@MartinDrozdik你是對的。但我認爲沒有辦法做到這一點。 'std :: exception'中的'what()'函數不提供修改文本的方法。 – lrineau