Czasami skończę konieczności złapać wyjątek, że wiem, nigdy nie może się zdarzyć, tak jak tutajJak radzisz sobie z wyjątkami "niemożliwymi" w Javie?
URLDecoder.decode("some string", "UTF-8"); //No unknown encoding possible
lub tutaj:
public void methodWithURL(URL url){
URI uri = new URI(url); //No invalud URI syntax possible
}
Jak to obsługiwać? Generalnie rejestruję zabawny błąd dotyczący zmiany praw wszechświata, a następnie wyrzucam RuntimeException
. Czy istnieje lepszy sposób?
try/catch (XXXException _ex) {throw new AssertionError (_ex);} – bestsss
@bestsss Też słyszałem o AssertionError jako alternatywa dla RuntimeException. Czy jest to ogólny sposób, aby zrobić to przez RuntimeException lub po prostu lepszy sposób podklasy tego rodzaju błędów? dzięki! (również, możesz chcieć pisać w sekcji odpowiedzi) – Miquel
Błąd nie rozszerza wyjątku, więc pomija nadużywane 'try/catch (Exception any)'. Wszystko, co przechwytuje 'Throwable', powinno jawnie zawierać w /' Błąd'. Kod klienta nie może również uchwycić "błędu" bez przyczyny. Wyłącznie rejestrowanie wyjątku, który * nie może się zdarzyć * zazwyczaj nie jest właściwą rzeczą. I nie, nie chcę wypróbowywać odpowiedzi :) – bestsss