Неожиданное завершение при вставке shared_ptr в список - PullRequest
0 голосов
/ 18 июня 2010

У меня есть какая-то функция:

void addNormalLine(int id, LineNumber number, Rate smsRate, Rate callRate) {
list<Account>::iterator iAccounts;
        findAccount(iAccounts, id);
        if(iAccounts == listOfAccounts.end()){
            throw "AccountDoesNotExist";
        }
if(lineExists(number)){
            throw "LineExists";
        } else{
            iAccounts->increaseNumLines();
            shared_ptr<Line> currentLine(new Line(id, number, smsRate, callRate));  //here I have some problems
            listOfLines.push_back(currentLine);  //without these two rows it works, but didn't add lines to my list
        }
    }
Account, Rate, LineNumber - some classes

, но она всегда добавляет только одно или два числа, если я добавляю 3, она всегда заканчивается, и я получаю terminated, exit value: 3, я пыталась Google, но не сделалане могу найти, что это должно означать, заранее спасибо

1 Ответ

0 голосов
/ 18 июня 2010

Неправильно использовать строки в качестве значений исключений. Используйте классы для исключений, по крайней мере что-то вроде std :: runtime_error () или лучше создайте новый класс, производный от него.

Убедитесь, что вы ловите исключения, которые вы генерируете в этом методе.

Каково определение findAccount?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...