TAK. Według Effective Java -
Choć Java Language Specification nie wymaga go, istnieje silna konwencja, że błędy są zarezerwowane do użytku przez JVM, aby wskazać braki zasobów, niezmienne awarie lub inne warunki, które czynią go niemożliwe do kontynuowania egzekucji. Biorąc pod uwagę prawie powszechną akceptację tej konwencji, najlepiej nie wdrażać żadnych nowych podklas błędów. W związku z tym wszystkie niezatwierdzone tharkibles należy wdrożyć klasy RuntimeException (bezpośrednio lub pośrednio).
Poniżej użytkowania nierejestrowanego wyjątkiem zaleca się: -
- wyjątki Wykorzystanie środowiska wykonawczego w celu wskazania błędów programowania.
- Jeśli uważasz, że warunek może umożliwić odzyskanie, użyj sprawdzonego wyjątku; jeśli nie, użyj wyjątku środowiska wykonawczego. Jeśli nie jest jasne, czy odzyskiwanie jest możliwe, prawdopodobnie lepiej jest użyć niesprawdzonego wyjątku.
O dokumentowania niesprawdzony wyjątek -
Użyj tag Javadoc @throws udokumentować każde niezaznaczone wyjątek że metoda może rzucać, ale nie używać rzuca słów kluczowych w celu niezaznaczone wyjątków w metodzie deklaracja.
Po prostu należy pamiętać, że dodanie nowych wyjątków do istniejącego kodu w zasadzie łamie zgodność z wcześniejszymi wersjami interfejsu API. Oczywiście, jeśli dodasz tylko RuntimeExceptions, jest on nadal kompatybilny z binariami, ale osobiście uważam, że jest jeszcze gorzej: nieświadomi ludzie będą teraz łączyć się z nową wersją i nagle dostaną dziwne błędy .. ugh. – Voo