I am trying to get my program to throw a stdexcept range_error if the array index my function is accessing is out of bounds. The type passed in is of size_t because the memory location in the stack may be signed or unsigned. Here is what I have tried:
MyClass::MyClass(){ // default constr
size = 10;
ptr = new int[size];
}
int MyClass::at(size_t position) const
{
try
{
return ptr[pos];
}
catch (const std::range_error&)
{
cout << "Range Error" << endl;
}
}
int main() {
// Test exceptions
MyClass a;
throw_(a.at(0), range_error);
}
If anyone can please help correct my function so it throws a range_error when the index is out of bounds, that would be greatly appreciated!
Aucun commentaire:
Enregistrer un commentaire