Stack Trace را مثل متن وحشتناک نبین؛ از اولین فریم کد خودت شروع کن
یک stack trace بلند میبینی و بین دهها خط کتابخانه و framework نمیدانی از کجا شروع کنی.
نام exception، پیام و اولین جایی که وارد کد خودت میشود را پیدا کن؛ بعد ورودی و state همان نقطه را بررسی کن.
چطور دقیقتر به موضوع نگاه کنیم؟
- نوع خطا و پیام اصلی را جدا از trace بخوان.
- اولین فریمی را که به فایل و خط کد خودت اشاره میکند پیدا کن.
- ورودیها، مقدارهای null/undefined و state همان تابع را بررسی کن.
- اگر خطا async است، request یا job مرتبط را با یک correlation id یا log زمینهدار دنبال کن.
چرا این موضوع مهم است؟
بخش بزرگی از trace مسیر اجرای کتابخانه است. نقطهای که خطا از کد تو وارد آن مسیر شده معمولاً سرنخ عملیتری دارد.
سؤالهایی که معمولاً بعدش پیش میآید
همیشه اولین خط trace مقصر است؟
نه؛ پیام و مسیر callها باید با هم خوانده شوند، اما اولین فریم کد خودت نقطه شروع خوبی است.
اگر خطا داخل dependency باشد؟
ورودیای که به dependency دادهای، نسخه آن و issueهای شناختهشده را بررسی کن.
