Wyjątki. Jak kiedy i po co?

0

Witam.
Od jakiegoś czasu zastanawia mnie temat wyjątków. Czy są one konieczne? W większości przypadków w moich niewielkich projektach zazwyczaj wypisywanie błędu wystarczało, lecz chciałem się zapytaj kogoś bardziej doświadczonego w temacie: kiedy należy tworzyć własną klasę do obsługi wyjątków, i w jakich sytuacjach tego ogólnie używać by wydajność nie spadła zbyt dużo?

0

Stosuje się je w sytuacjach wyjątkowych, jak sama nazwa wskazuje. Głównie wtedy kiedy nie bardzo da się wyjątek "obsłużyć" w miejscu jego wystąpienia.
Załóżmy że wczytujesz z pliku jakieś dane i przeprowadzasz na nich jakieś złożone operacje. W trakcie jednej z operacji pojawił się błąd, bo plik wejściowy jest zepsuty. Chcesz w związku z tym przerwać całe przetwarzanie i informacje o błędzie przekazać "w górę". Samo zalogowanie błędu to trochę za mało w tym przypadku ;)

Gdybyś chciał to samo zrobić bez wyjątków musiałbyś z każdej operacji zwracać informacje o tym czy nie wystąpił błąd (i to nie prosty boolean tylko rozbudowany enum bo błędów może być wiele rodzajów) i w całej hierarchii wywołań wszędzie sprawdzać co operacja zwróciła i w przypadku błędu przekazywać w górę. Mało wygodne :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1