私は次のものを持っていますclass exception
:
namespace A{
namespace B{
namespace C{
class internal_error : public std::runtime_error{
public:
explicit internal_error(const std::string &arg) : std::runtime_error(arg) {};
};
}
}
}
そして私のコードには次のようなものがあります。
try{
if(mkdipath(dirname, DIR_CREATION_MODE, &err)){
string msg;
msg = "failed to create path " + *dirname;
logmsg(MSERROR, msg.c_str(), who);
throw A::B::C::internal_error(msg);
}
}
catch(){
// how am I going to catch a A::B::C::internal_error?
}
私の質問は:A :: B :: C :: internal_errorをどのようにキャッチするのですか?使用する必要があります:
catch(A::B::C::internal_error &error){
string msg("You should never had happened\n");
logmsg(MSERROR, msg.c_str(), who);
}
MSERROR
タグ、、...は無視してください。これらは質問にとって重要ではありませwho
ん。mkdirpath