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 ва паёми хато ба муштарӣ бармегардонад.