Skip to main content

مدیریت خطا

مدیریت خطا باید قابل پیش‌بینی، قابل log و قابل تبدیل به خروجی استاندارد سیستم باشد.

قوانین try/catch

  • try/catch فقط جایی مجاز است که recovery، تبدیل exception یا context logging وجود دارد
  • swallow کردن exception ممنوع است
  • catch عمومی بدون rethrow یا log ممنوع است
  • exceptionهای domain باید معنی business داشته باشند

Response خطا

  • APIها باید response استاندارد پروژه را برگردانند
  • raw JSON پراکنده ممنوع است
  • پیام خطا نباید stack trace یا داده حساس افشا کند
  • exception به response فقط در لایه entry point، handler یا transformer مجاز انجام شود

Debug

  • dd، dump و var_dump در کد قابل merge ممنوع است
  • debug موقت باید قبل از MR حذف شود
  • برای بررسی production فقط از log و ابزار مانیتورینگ استفاده شود

Logging خطا

هر خطای مهم باید context کافی داشته باشد:

  • شناسه request
  • شناسه user در صورت وجود
  • action یا use case
  • شناسه entity مرتبط