Cześć, mam pewien dylemat, tworze sobie swój własny wyjątek, z nadpisana metoda wirtualna what() z klasy exception (obowiazkowo musze tak zrobic),
class PozaZasiegiem : public exception
{
public:
char const* what() const override
{
return "Poza zasiegiem";
}
};
chce ten wyjatek wyrzucić w przypadku gdy użytkownik odwoła się w niewłaściwy sposób podczas podawania indexu tablicy dla obiektu klasy "Tablica", tutaj przeciążyłem operator[]
int & operator[] (int index_tablicy)
{
try
{
if (index_tablicy < 0 || index_tablicy >= rozmiar)
throw PozaZasiegiem();
}
catch (const std::exception& ex)
{
cerr << ex.what();
}
cout << " zwracam wartosci: " << tablica_liczb[index_tablicy] << endl;
return tablica_liczb[index_tablicy];
}
Pytanie czy te bloki sa we wlasciwym miejscu? Bo wyrzuca mi wyjatek ale wciaz operator zwraca mi wartosc, a tak nie powinno byc.