Sobes.tech
Junior — Middle

Μπορείτε να εξηγήσετε για ποιο λόγο χρησιμοποιείται η σημείωση @ExceptionHandler στο Java Spring;

sobes.tech AI

Απάντηση από AI

Η ετικέτα @ExceptionHandler στο Spring Java χρησιμοποιείται για την αντιμετώπιση εξαιρέσεων που προκύπτουν στους ελεγκτές. Επιτρέπει τον ορισμό μιας μεθόδου που θα καλείται όταν προκύψει ένας συγκεκριμένος τύπος εξαίρεσης, βοηθώντας στη διαχείριση σφαλμάτων με κεντρικό τρόπο και στην επιστροφή κατανοητών απαντήσεων στον πελάτη.

Παράδειγμα χρήσης:

@Controller
public class MyController {

    @GetMapping("/example")
    public String example() {
        if (true) {
            throw new IllegalArgumentException("Μη έγκυρη παράμετρος");
        }
        return "ok";
    }

    @ExceptionHandler(IllegalArgumentException.class)
    public ResponseEntity<String> handleIllegalArgument(IllegalArgumentException ex) {
        return ResponseEntity
                .status(HttpStatus.BAD_REQUEST)
                .body("Σφάλμα: " + ex.getMessage());
    }
}

Σε αυτό το παράδειγμα, αν η μέθοδος example ρίξει μια IllegalArgumentException, η μέθοδος με την ετικέτα @ExceptionHandler θα πιάσει αυτή την εξαίρεση και θα επιστρέψει στον πελάτη μια απάντηση με κωδικό 400 και μήνυμα σφάλματος.