Lewati ke konten utama

Error Handling

Prinsip​

  1. Never swallow errors — Jangan biarkan catch block kosong.
  2. User-friendly messages — Tampilkan pesan error yang bisa dipahami user.
  3. Logging — Log error secara detail untuk debugging (tapi jangan log sensitive data).
  4. Retry mechanism — Berikan opsi retry untuk recoverable errors.
  5. Graceful degradation — Tampilkan cached data jika network gagal.

Error Classification​

Tipe ErrorContohHandling
Network ErrorNo internet, timeoutShow retry button + cached data
Server Error (5xx)Internal server errorShow generic error + retry
Client Error (4xx)Validation, unauthorizedShow specific error message
Auth Error (401/403)Token expiredAuto refresh token / redirect to login
Parse ErrorMalformed JSONLog error + show generic message
Unknown ErrorUnexpected exceptionLog to crash reporting + generic message

Error UI States​

Setiap screen harus menangani:

  1. Loading — Skeleton / shimmer / spinner
  2. Success — Tampilkan data
  3. Empty — Tampilkan empty state illustration + message
  4. Error — Tampilkan error message + retry button
  5. No Internet — Tampilkan offline indicator + cached data (jika ada)