Я новичок в C ++, пишу класс на C ++ и использую std::string
.
Как мне обработать bad_alloc
исключение?
Могу ли я сделать:
Temp::Temp(const string name) :
{
try {
name(name);
}
catch(std::bad_alloc& a) {
cout << "bad alloc error" << endl;
}
}
или я должен сделать
Temp::Temp(const string name) :
name(name)
{
catch(std::bad_alloc& a) {
cout << "bad alloc error" << endl;
}
}
Я хочу перехватить исключение, чтобы я мог предотвратить утечку памяти, а затем, возможно, сбросить его снова.
Также, когда я использую x.assaing(y)
из std::string
, должен ли я также проверять исключение bad_alloc
? (Если я хочу справиться с утечками памяти.)
Я ищу способ без умных указателей (мы его еще не учили).