Sobes.tech
Junior — Middle

El tudnád magyarázni, hogy mire használják az @ExceptionHandler annotációt a Java Spring-ben?

sobes.tech MI

Válasz az MI-től

A @ExceptionHandler annotáció a Spring Java-ban az ellenőrzőkben fellépő kivételek kezelésére szolgál. Lehetővé teszi egy olyan módszer meghatározását, amelyet akkor hívnak meg, amikor egy adott típusú kivétel fordul elő, ezáltal központosítva a hibák kezelését és érthető válaszokat adva az ügyfélnek.

Használati példa:

@Controller
public class MyController {

    @GetMapping("/example")
    public String example() {
        if (true) {
            throw new IllegalArgumentException("Hibás argumentum");
        }
        return "ok";
    }

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

Ebben a példában, ha az example metódus IllegalArgumentException-t dob, akkor az @ExceptionHandler annotációval ellátott módszer elkapja ezt a kivételt, és egy 400-as kódú, hibát tartalmazó választ ad vissza az ügyfélnek.