Sobes.tech
Junior — Middle

Můžete vysvětlit, k čemu slouží anotace @ExceptionHandler v Java Spring?

sobes.tech AI

Odpověď od AI

Anotace @ExceptionHandler v Spring Java se používá k ošetření výjimek, ke kterým dochází v kontrolerech. Umožňuje definovat metodu, která bude volána při výskytu určitého typu výjimky, což pomáhá centralizovaně spravovat chyby a vracet srozumitelné odpovědi klientovi.

Příklad použití:

@Controller
public class MyController {

    @GetMapping("/example")
    public String example() {
        if (true) {
            throw new IllegalArgumentException("Nesprávný argument");
        }
        return "ok";
    }

    @ExceptionHandler(IllegalArgumentException.class)
    public ResponseEntity<String> handleIllegalArgument(IllegalArgumentException ex) {
        return ResponseEntity
                .status(HttpStatus.BAD_REQUEST)
                .body("Chyba: " + ex.getMessage());
    }
}

V tomto příkladu, pokud metoda example vyhodí IllegalArgumentException, zachytí ji metoda s anotací @ExceptionHandler a vrátí klientovi odpověď s kódem 400 a chybovou zprávou.