質問: 可変メッセージでstd :: exceptionsをスローする方法は? これは、例外に情報を追加したいときによく行うことの例です。std::stringstream errmsg; errmsg << "could not load config file '" << configfile << "'"; throw std::exception(errmsg.str().c_str()); より良い方法がありますか?
回答: 標準の例外は、std::stringから構築できます。#include <stdexcept> char const * configfile = "hardcode.cfg"; std::string const anotherfile = get_file(); throw std::runtime_error(std::string("failed: ") + configfile); throw std::runtime_error("error: " + anotherfile); 基本クラスstd::exceptionはnotのように構築できることに注意してください。具体的な派生クラスのいずれかを使用する必要があります。