Cześć, nie do końca rozumiem wyjątki tzn. potrafię je wstawić do kodu itd. ale po co zgłaszać wyjątek który i tak nie zostanie przechwycony? Czy to nie wychodzi na jedno? Bo gdybyśmy go nie zgłosili to przecież program i tak przestanie działać i napisze dlaczego (np. przy dzieleniu przez zero).
Po co zgłaszać wyjątki?
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: XML Hills
Ale dlaczego wypieprzać program przy dzieleniu przez zero? Przecież można złapać wyjątek, zalogować, zgłosić błąd użytkownikowi i kontynuować dalej. Użytkownik może spróbować jeszcze raz z tymi samymi lub innymi danymi wejściowymi.
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Space: the final frontier
- Postów: 26433
Wyjątki czy instrukcje warunkowe ?
Poza tym: jak piszesz coś więcej niż hello world, na przykład kod na > 1kk linii kodu z którego korzystają tysiące ludzi to nie chcesz wypluć użytkownikowi błędu "division by zero" albo "null pointer exception" albo innych zupełnie dla niego niezrozumiałych. Chcesz mu wyświetlić sensowny błąd z domeny biznesowej, na przykład "podałeś zły numer telefonu".
- Rejestracja: dni
- Ostatnio: dni
- Postów: 4
Dobra, dzięki za pomoc (link wyżej wiele wyjaśnił) ale co to znaczy, że program nie jest kaput? Przecież po zgłoszeniu wyjątku wszystko przestaje działać.
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Space: the final frontier
- Postów: 26433
Ale przecież wyjątek możesz złapać, wtedy program wcale nie umiera ;) Tylko mozesz normalnie pracować dalej od miejsca gdzie złapałeś wyjątek. Na przykład możesz powtórzyć operację która się wysypała.
Jeśli próbujesz ściągnąć dane z internetu i poleciał ci wyjątek że nie da się nawiązać połączenia to możesz złapać ten wyjątek i spróbować ponownie.