Sobes.tech
Junior — Middle
132

@Controller аннотациясымен белгіленген контроллерлерде қателерді өңдеу қалай жүзеге асырылады?

AI-дан жауап

sobes.tech AI

Spring MVC контроллерлерінде, @Controller аннотациясымен белгіленген, қателерді өңдеу бірнеше тәсілмен жүзеге асырылуы мүмкін:

  • @ExceptionHandler — контроллердің ішінде немесе @ControllerAdvice аннотациясымен белгіленген жеке класта орналасқан әдіс, ол белгілі бір типтегі қателерді ұстап, жауап қайтарады.

  • @ControllerAdvice — барлық контроллерлер үшін жаһандық қателерді өңдеуші, ол қателерді орталықтандырылған түрде өңдеуге мүмкіндік береді.

  • ResponseStatusException@ResponseStatus аннотациясымен қателік тастау, HTTP статусы автоматты түрде орнатылады.

@ExceptionHandler қолданудың мысалы контроллер ішінде:

@Controller
public class MyController {

    @GetMapping("/example")
    public String example() {
        if (true) {
            throw new IllegalArgumentException("Параметр қателігі");
        }
        return "view";
    }

    @ExceptionHandler(IllegalArgumentException.class)
    public ResponseEntity<String> handleIllegalArgument(IllegalArgumentException ex) {
        return ResponseEntity.badRequest().body(ex.getMessage());
    }
}

Осылайша, IllegalArgumentException қателігі пайда болғанда, handleIllegalArgument әдісі клиентке 400 коды мен қате туралы хабарламамен жауап қайтарады.