c++ - Catching exception from out of index -
i have main file can not edit. there things done , writing classes suitable main file. v1 object instance of own vector class.
at point of main have line.
try { // trying element at(4) // should give error cout << v1[4] << endl; } catch (const string & err_msg) { cout << err_msg << endl; }
my v1 vector's size "3" program crashing because going out of index. taking error ok here. how can exception cout line before program crashes ? , not allowed edit main code. need header files or class definitions. thanks.
without modifying main code, should write own vector class check bounds in operator[]
.
something like:
template <typename t> class myvector { t *data; int length; ... t &operator[](int i) { if (i < 0 || >= length) throw std::string("out of bounds!"); //throw std::out_of_range; else return data[i]; } ... };
otherwise if you're using std::vector
, can use at
instead of []
:
returns reference element @ specified location pos. bounds checking performed, exception of type std::out_of_range thrown on invalid access.
Comments
Post a Comment