Sobes.tech
Junior — Middle

@Controller bilan belgilangan nazoratchilarda istisno bilan ishlash qanday amalga oshiriladi?

sobes.tech AI

AIdan javob

Spring MVC kontrolörlarida, @Controller bilan belgilangan, istisnolarni boshqarish bir nechta usullarda amalga oshirilishi mumkin:

  • @ExceptionHandler — kontrolör ichida yoki @ControllerAdvice bilan belgilangan alohida sinfda, ma’lum bir turdagi istisnalarni ushlash va javob qaytarish.

  • @ControllerAdvice — barcha kontrolörlar uchun global istisno boshqaruvchisi, xatoliklarni markazlashtirilgan tarzda boshqarish imkonini beradi.

  • ResponseStatusException@ResponseStatus bilan belgilangan istisnani chiqarish, HTTP holatini avtomatik o'rnatish uchun.

@ExceptionHandler ni kontrolör ichida ishlatish misoli:

@Controller
public class MyController {

    @GetMapping("/example")
    public String example() {
        if (true) {
            throw new IllegalArgumentException("Parametr xatosi");
        }
        return "view";
    }

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

Shu tarzda, IllegalArgumentException istisnasi yuzaga kelganda, handleIllegalArgument metodi mijtga 400 kodli va xato xabari bilan javob qaytaradi.