@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
@ControllerAdvicebilan 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 —
@ResponseStatusbilan 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.