Skip to content

M07 · Bab 7± 45 menitDraf AI

Error Handling dengan ProblemDetail

Tujuan belajar

  • Menjelaskan format error standar RFC 9457 dan field type, title, status, detail, instance
  • Memusatkan penanganan error dengan @RestControllerAdvice + @ExceptionHandler yang mengembalikan ProblemDetail
  • Memetakan exception domain ke status 404, 409, dan 422 secara konsisten
  • Mengubah error validasi menjadi 400 berisi daftar field yang salah
  • Menangani error 500 tanpa membocorkan stack trace, dengan log yang bisa dilacak lewat correlation id

Prasyarat: DTO dan Validasi

Kuis

5 soal · lulus bila minimal 70% benar

1.Handler @ExceptionHandler(ProductNotFoundException.class) mengembalikan ProblemDetail.forStatusAndDetail(HttpStatus.NOT_FOUND, ex.getMessage()) dan klien memanggil GET /api/products/KOPI-999. Apa yang diterima klien?
2.Klien mengirim POST /api/orders dengan JSON valid, tetapi jumlah yang dipesan melebihi stok. Tim memakai konvensi di bab ini. Status apa yang paling tepat?
3.Advice-mu sudah extends ResponseEntityExceptionHandler. Apa efek menambahkan spring.mvc.problemdetails.enabled=true?
4.Saat insiden, support menerima keluhan "error 500, errorId 7f3c...". Apa manfaat errorId itu?
5.Advice punya @ExceptionHandler(Exception.class) dan @ExceptionHandler(ProductNotFoundException.class). Service melempar ProductNotFoundException. Handler mana yang dipakai?

Jawab semua soal dulu (0/5)