مدیریت خطا
مدیریت خطا باید قابل پیشبینی، قابل 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 مرتبط