cześć, w nauce c++ doszedłem do wyjątków i mam kilka pytań a dokładniej nie rozumiem do końca kiedy je stosować? czy są operacje w których jasno określone jest że, używając ich (tych operacji/funkcji) musimy użyć wyjątku? Jako przykład (nie wiem czy dobry) podam operator indeksowania [] dla klasy "bezpiecznej tablicy"
kod z obsługą wyjątku
int operator[] (int x)
{
try {
if (x >= indeks) {
throw out_of_range("blad zakresu tablicy");
}
return tab[x];
}
catch(logic_error & e) {
cout<< "wylapany wyjatek logic_error" <<endl;
cout<< e.what() <<endl;
return tab[indeks-1];
}
}
i bez wyjątku
int operator[] (int x)
{
if (x >= indeks) {
cout<< "blad zakresu tablicy" <<endl;
return tab[indeks-1];
}
return tab[x];
}
Czytałem też, że wyjątki mają negatywny wpływ na wydajność programu wiec jak to jest z ich stosowaniem? Czy jeżeli możemy dana sytuacje obsłużyć/zabezpieczyć w inny sposób to znaczy że wyjątek nie jest potrzebny? Z tym że w bardzo wielu przypadkach można wykorzystać zwykła klasę z numerem błędu i np stringiem informującym co poszło nie tak? Proszę o krótkie wytłumaczenie tej kwestii
fasadin