@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 коды мен қате туралы хабарламамен жауап қайтарады.