درس چهارم- ایرادیابی
مقدمه
خطاها
بخش بدون تفکیک و دوری ناپذیر در برنامه نویسی هستند. این مسئله برای همه
افرادی که رو به برنامه نویسی میآورند مشترک است. البته هر چقدر تجربه ما
در نوشتن کدها بالاتر میرود، احتمالا از تعداد خطاها و ایرادها در
برنامههایمان کاسته میشود. اما فراموش نکنید که این جزوی از ساخت سیستم
است و نوشتن برنامه بدون ایراد تقریبا غیر ممکن است. برای اینکه این ادعا
را روشنتر بیان کنیم و بیشتر مورد قبول شما قرار گیرد، به تجربه خودتان در
استفاده از برنامهها و یا ابزارکهای نوشته شده رجوع کنید. بدون شک در
طول کار با برنامههای متعدد بارها و بارها به ایرادها برخوردید، شاید
کلمه Bug
یا اشکال برایتان از این جهت آشنا به نظر آید. در این درس نگاهی به
دلایل و یا موجبات اشکالها و اثرات آنها در تارنماها پرداخته و تکنیکهایی
را برای یافتن و رفع آنها بررسی میکنیم.
انواع خطاها
در ابتدا باید ذکر کرد که عامل یا محل اشکال میتواند در هر قسمتی از
تارنما باشد. بطور مثال در برچسبهای اچتیامال، پیاچپی و یا اسکیو
ال. معمولا خطاهای اچتیامال آسانترین در ردیابی و رفع هستند، چراکه شما
نتیجه خطا را در صفحه مرورگر میبینید و احتمالا خیلی راحت آن را برطرف
میکنید.
خطاهای پیاچپی شاید بیشترین باشند چرا که این برنامه در اصل هسته اصلی تارنما را تشکیل میدهد. این خطاها به سه دسته عمومی زیر تقسیم میشوند:
Syntactical یا خطای دستوری: شاید بیشترین تعداد خطاها، ایرادهای دستوری در میان کدهای شما باشند که براحتی هم قابل پیدا کردن و اشکال زدایی هستند. مثلا فراموش کردن علامت $ ویا ; که اجازه اجرای کد را نمیدهند و باید ابتدا آنها را درست کرد. البته مشاهده این خطاها وابسته به فعال بودن قسمت نمایش ایرادها در پیکربندی پیاچپی شما است (در ادامه درس به این نکته هم پرداخته خواهد شد).
Run-time: این دسته خطاها برنامه را از اجرا باز نمیدارند، بلکه اجرای برنامه بطوریکه نوشته شده انجام نمیشود و ممکن است شما نتیجه متفاوت از آنچه نوشتهاید دریافت کنید. مثلا فراخوانی تابعی با تعداد یا نوع پارامترهای نادرست. در این گروه اشکالها پیاچپی معمولا یک پیغام خطا میدهد که اشکال را بطور مشخص نشان میدهد.
Logical: این دسته اشکالها شاید بدترین آنها باشند چراکه لزوما گزارش یا خطایی از پیاچپی اعلام نمیشود و برنامه مسیر عادی خود را طی میکند. این نوع خطاها معمولا مشخص نیستند و در اجرای برنامه هم تاثیری ندارند. پس پیدا کردنشان کمی سختتر به نظر میآید.
خطاهای اس کیو ال: خطاها در زبان پرسوجوی اسکیو ال بیشتر به شکل ایرادهای دستوری هستند و در طول اجرای پرسوجو انجام و نمایش داده میشوند. ایرادیابی در این منطقه هم سخت به نظر نمیآیند. مثلا اشتباه در نوشتن دستوری از نظر ترتیب یا استفاده غلط از کلمات پیش فرض.
از خطاهای واضح و تکراری، پیغام عدم دسترسی به پایگاه و یا سطح دسترسی است که در قسمتهای آینده بیشتر از آنها صحبت میکنیم.