tags:

views:

52

answers:

1

I have some function:

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

but It always add only one or two numbers, if I add 3 it always terminates and and I recieve terminated, exit value: 3, I tried google it, but didn't find, what is than supposed to mean, thanks in advance

A: 

It's a bad practice to use strings as exception values. Use classes for exceptions, at least something like std::runtime_error() or better create a new class derived from it.

Make sure you catch exceptions you're throwing in this method.

What's the definition of findAccount?

deemoowoor
I had 6 statements addLine, I tried every two, it works perfectly, but with third it fails
helloWorld