Jestem nowy w Javie i czytałem dokumentację dotyczącą wyjątków. , a zwłaszcza Niezaznaczone wyjątki - strona Kontrowersje .
Dolna linia mówi:
Jeśli można zasadnie oczekiwać, że klient wyzdrowieje z wyjątku, uczyń go sprawdzonym wyjątkiem. Jeśli klient nie może nic zrobić w celu odzyskania od wyjątku, uczyń z niego niesprawdzony wyjątek.
Nie rozumiem tego artykułu. Na czym polega „kontrowersja”? Czy możesz to wyjaśnić prostymi słowami?
java
api-design
exceptions
ABcDexter
źródło
źródło
Odpowiedzi:
Najpierw dam wam przykład (ale na samym końcu znajduje się odpowiedź na pytanie, dlaczego kontrowersje).
Przypuśćmy, że edytujesz dokument w edytorze dokumentów opartym na Javie, a po zakończeniu wybierz Plik-> Zapisz jako ... i zdecydowałeś się zapisać dokument na wolumin, na którym nie masz uprawnień do zapisu. Edytor nie zawiesiłby się na tobie z brzydkim śledzeniem stosu, po prostu powiedziałby ci, że nie może zapisać pliku i pozwoli ci kontynuować edycję i / lub zapisać w innej lokalizacji.
W takim przypadku prawdopodobnie sprawdzono wyjątek, który został złapany i podjął działania, aby łaskawie go wyleczyć.
Z drugiej strony, załóżmy, że dzielenie przez zero lub zerowy wskaźnik wyjątku spowodowany błędem programowania, który powoduje, że jego brzydka głowa pojawia się tylko w określonych warunkach. Może się to zdarzyć w dowolnym miejscu w kodzie, pamięć RAM może zostać uszkodzona itp. Żaden dokument API nie powiedziałby, że „ta metoda spowodowałaby podział przez zero, jeśli pamięć RAM jest uszkodzona” .
Sprawdzone wyjątki powinny być częścią projektu, a użytkownicy tego interfejsu API powinni przygotować się na ich obsługę. Niesprawdzone wyjątki mogą zdarzyć się prawie wszędzie i są poza naszą kontrolą.
Kontrowersje powstają od programistów stosujących niesprawdzone wyjątki (od RuntimeException), kiedy powinni używać sprawdzonych wyjątków:
źródło
Na tej stronie nie ma kontrowersji. To Oracle mówi ludziom, aby korzystali ze sprawdzonych wyjątków.
Wymyśleni przez nich fałszywe „kontrowersje” dotyczą projektantów i użytkowników języka. Projektanci pozwolili ludziom rzucać i łapać rzeczy, które (ich zdaniem) nie powinny być rzucane ani łapane. Stworzyli więc stronę internetową narzekającą na leniwych programistów.
źródło