فرض کن یه ارور داری که تو یه callback ای رخ داده و نود.جیاس بهت میگه uncaught exception داری. یه راه حلی که داری اینه که بری توی تموم callback هات try catch بندازی تا برات ارور ها رو catch بکنه. راه حل ساده تر اینه که بیا از VSCode استفاده بکنی.
فرض کن یه پکیجی میخوای نصب بکنی و در حین نصبش به یه ارور میخوری میخوای چکار کنی؟
میری گوگل میکنی؟
میری از اعضای تیم میپرسی؟
میری تو گروه های تلگرامی سوال میپرسی؟
میری issue های گیت هابش رو نگاه میکنی؟
خب قبل از همه کار های بالا بهتره چند تا کار بکنی:
یادت باشه که هزینه استفاده از یه پکیج بدون یاد داشتنش خیلی بیشتره تا اینکه وقت بزاری و یادش بگیری.
اصلا این پکیج ارزشش رو داره یادش بگیرم.
شاید بتونی یه جور دیگه ستاپ بکنیش.
میتونی از یکی از اعضای تیم که از یه زاویه دیگه بهش نگاه میکنه بپرسی. پرسیدن نشونه ضعف نیست. بلکه روحیه کار تیمی رو هم بینتون بالا میبره.
خب حالا بهتره دنبال این بگردی که اصلا چرا همچین چیزی رخ داده:
یادت باشه که git commit بکنی. چرا؟ با اینکه کدت کار نمیکنه ولی بهتر از اینه که یهو بخوای یه کامیت بزرگ بزنی و یادت بره که تو مسیر حل مشکل چه حرکاتی زدی. trace کردن رو ممکن میکنه.
یک تایمر بزار کنار خودت. یعنی بیشتر از اون مدت زمان برای حل باگ تلاش نکن. چرا؟ چونکه بعد از مثلا ۳۰ دقیقه به خودت یه استراحت ۵ دقیقه ای بدی و بعدش یه بازبینی داشته باشی که بفهمی داری چکار میکنی و چکار کردی.
برای حل مشکلت تو جا های درست دنبالش بگرد.
به keyword ها و جزئیات توجه بکن تا یه سرچ خوب داشته باشی.
یادت باشه که توی stack trace معمولا خط اول جایی هست که ارور throw شده. و خطوط بعدی call stack رو داره نشون میده.
به message ارور دقت بکن (error.message)
چند تا راهنمایی برای گوگل کردن:
ارور message رو توی double quotation بزار تا دنبال همون عبارت بگرده
داخل double quotation از * استفاده بکن تا سرچ انجین گوگل قبل و بعدش رو بگه ممکنه هر چی باشه
از − استفاده بکن تا بگی که توی نتایج باید حتما این کلمات باشه.
اگر هم دنبال فیلم آموزشی هستی how to رو اولش بزار تا سرچ انجین هوشمند گوگل بفهمه که دنبال tutorial هستی.
خب حالا فرضا ارور هندل شد و رفتی جلو، بعد از مدتی دوباره به ارور میخوری و سرچش میکنی و یه لینک میبینی تو stackoverflow، میری توش و بعد bingo، خودت upvote کردیش. چرا همچین چیزی رخ داده؟ برای اینکه مشکل رو داکیومنت نکردی (فرضا یه پست در موردش تو ویرگول یا هر جای دیگه ای ننوشتی). تو این مواقع معمولا باید ۲ تا کار کرد:
یه تست بنویسی
یه ارور هندلینگ بنویسی؛ یعنی مثلا براش یه پیغوم کاستوم شده بنویسی
البته یه روش خیلی قشنگ هم برای سرچ اتوماتیک توی مواردی که از react یا امثالهم استفاده میکنی اینه که یه همچین اسکریپتی بنویسی:
= error => {
// redirect to SO with error as query
.href = `https://stackoverflow.com/search?q=[js]${error.message}`;
}
که نوشتن معادلش برای نود.جیاس کار زیاد سختی نیست. شاید بعدا خودم نوشتم و ته این پست اضافه کردم.