Wpis z mikrobloga

@WiPeK: to jest słaby pomysł, trzeba by iterować po mapie i robić entry.getKey().isInstance(e), bo inaczej musisz ręcznie dodawać całe drzewko możliwych typów dla każdego exceptiona.
@quwer: to jest @ControllerAdvice, nawet na stronie dokumentacji pokazują to w podobny sposób, ja bym tutaj nic nie ruszał ponieważ to tak ma mniej więcej działać obsługa błędów za pomocą tej adnotacji. Wchodzisz do klaski i widzisz jakie ify po kolei... złożoność masz 1 do n, ewentualnie możesz pokombinować z mapą ale to już sztuka dla sztuki
@quwer: wrzuć new HttpHeaders() w miejscu użycia, generalnie staraj się redukować scope zmiennej jak tylko się da, jeśli nie psuje to czytelności
@quwer:
Zamiast robić jedną generyczną metodę z ifami zrób 4 czy 5 metod, które wyłapują konkretne wyjątki i jedną którą wyłapuje wszystko pozostałe.

@ExceptionHandler(EntityNotFoundException.class)
@ExceptionHandler({OptimisticLockException.class, ConcurrentModificationException.class})
@ExceptionHandler({IllegalArgumentException.class, IndexOutOfBoundsException.class, NullPointerException.class})
@ExceptionHandler(AccessDeniedException.class)
@ExceptionHandler(Throwable.class)
@aloucie: to ma mniej wiecej tak wygladac?
switch (ex) {
case EntityNotFoundException -> status = HttpStatus.NOTFOUND;

default -> status = HttpStatus.INTERNAL
SERVER_ERROR;
}