• مقدمه

هنگامی که شروع به کدنویسی می‌کنید و در حال طراحی و پیاده‌سازی یک برنامه‌ی خاصی توسط یک زبان خاصی هستید، بلاشک درمیان راه با مشکلاتی روبرو خواهید شد که بدلایلی مانند حواس‌پرتی، عدم تسلط کافی و … باعث ایجاد خطا در عملکرد برنامه می‌شود؛ یا جتی ممکن است برنامه اصلاً Compile نشود!

یکی از تکنیک‌هایی که در هنگام برنامه‌نویسی باید به آن تسلط کافی‌ای داشته باشید، نحوه Debug کردن برنامه (اشکال‌زدایی) است. به‌صورت کلی ما دو نوع خطا داریم؛ Syntax Error (خطای نحوی) و Logic Error (خطای منطقی). یک کامپایلر و IDE (در اینجا یعنی Visual Studio) تنها می‌تواند خطاهایی که بدلیل نوشتن اشتباه کد و یا جا انداختن یک Semicolon را ردیابی کند (Syntax Error)، اما هیچ‌گاه نمی‌تواند که یک خطای منطقی مثل تقسیم یک عدد بر صفر را پیدا کند!

  • اشکال‌زادایی برنامه (Debugging) قسمت اول

اولین جایی که ممکن است با خطاها روبرو شوید، زمان طراحی و کدنویسی برنامه هست که در  اصطلاح برنامه‌نویسی به آن Design-Time Error می‌گویند. این خطا‌ها حتی پیش از Compile کردن برنامه مشاهده می‌شود و شما می‌بایست در صدد رفع آن باشید.

Design-Time Error جزو خطاهایی هستند که راحت می‌توان آن‌ها را ردیابی و رفع نمود؛ چرا که نرم‌افزار Visual Studio به‌صورت خطوط رنگی انواع خطاها را برای شما نمایش می‌دهد. در هنگام کدنویسی شما با سه نوع خط رنگی مواجه خواهید شد؛ آبی، قرمز و سبز.

خط‌هایی که به رنگ آبی هستند، با نام Edit and continue معروف هستند که بدین معنی‌ست شما می‌بایست تغییری در کدهایتان ایجاد کنید بدون اینکه برنامه متوقف شود.

خط‌های به رنگ قرمز با نام Syntax Error معروف هستند که نمایانگر این هست که یک غلط نحوی در کدنویسی شما وجود دارد.

خط‌های به رنگ سبز، اخطارهای کامپایلر (Compile Warning) هستند که زمانی این خطا را می‌بینید که کامپایلر متوجه می‌شود که یک مشکل کوچکی وجود دارد که ممکن است بعدها برای شما مشکل‌ساز باشد؛ همانند تعریف متغیری که هرگز از آن استفاده نشود!

خط‌های آبی رنگ:

در عکس پایین، شما می‌توانید یک خط آبی رنگ زیر عبارت مشخص شده را ببینید. (ممکن است نسخه‌های جدید Visual Studio این را نیز به‌عنوان خط قرمز رنگ در نظر بگیرد)

1-blue_wavy_line

این خط به این دلیل ظاهر شده چونکه ما TextBoxای با نام textBox2 در فرم نداریم؛ بلکه یک TextBox در فرم وجود دارد که نامش textBox1 است. پس می‌توانیم تنها با پاک کردن عدد ۲ و قرار دادن عدد ۱ به‌جای آن، به ادامه کدنویسی خود بپردازیم.

اگر نشانگر موس خود را بر روی خطاها نگه‌دارید، توضیحاتی در رابطه با خطای ایجاد شده نمایش داده می‌شود، اگرچه همیشه این توضیحات به‌طور کامل به شما کمک نخواهند کرد، ولی دیدن و خواندن آن‌ها خالی از لطف نیست!

خط‌های قرمز رنگ:

این نوع خطاها به آن Syntax Error می‌گویند. Syntax در واقع گرامر زبان برنامه نویسی است. همانطور که در زبان فارسی بایست قوانینی را در هنگام صحبت کردن رعایت کنیم تا مفهوم به صورت درست منتقل شود، در زبان‌های برنامه‌نویسی نیز این حکایت صدق می‌کند.

در عکس زیر ما یک Semicolon را در انتها فراموش کردیم:

2-red_wavy_line

اگر نشانگر موس را روی آن نگه‌دارید، راهنمایی لازم را به شما خواهد کرد:

3-red_wavy_line2

در عکس بعدی، می‌بینید که ما یک پرانتز فراموش کردیم که ان را به ما نمایش می‌دهد:

4-red_wavy_line3

خط‌های سبز رنگ:

این نوع خطاها به آن Compile Warning می‌گویند. به عکس زیر نگاه کنید:

5-green_wavy_line

اگر نشانگر موس را بر روی آن نگه‌داریم، خواهیم دید:

6-green_wavy_line2

این خطا می‌گوید که شما متغیری با نام CompilerWarning تعریف و مقداردهی شد،‌ اما هیچ‌گاه از آن استفاده نشد.

جهت دریافت ای بخش آموزشی به‌صورت یک فایل PDF، اینجا را کلیک کنید!

نظرات کاربران
اشتراک در
اطلاع از
22 نظرات
Reza
13 سال قبل

مفید بود،ممنون

فریماه
13 سال قبل

سلام،،آقا ممنون از شما ولی من چطور مطالب رو از روی سایت بردارم آخه کپی هم نمیشه…..

میلاد
13 سال قبل

سلام آقای موسوی
ببخشید دفعه قبل اسم شما رو اشتباه نوشتم
یه سوال دارم که آینده بشر بهش بستگی داره
اگه بخوام با asp.net و sql تو وب کار کنم نیازه لاینسس مایکروسافتو بخرم یا میشه کرک شده هم استفاده کنم آخه از یه جایی شنیدم باید به سایت مایکروسافت وصل باشی و نمیشه از برنامه کرک شده استفاده کرد

محمد
13 سال قبل

سلام دوست عزیز . از مطالب ارزنده اتان خیلی ممنون و سپاسگزارم . خیلی چیزها یاد گرفتم . من تاقسمت 33 را گرفتم و فکر می کنم مطالب ناقص مانده ، آیا در سایت نگذاشته اید یا من نتونستم پیدا کنم . با تشکر

novid
13 سال قبل

سلام
نویسنده عزیز این اموزش ها برای من که دانشجو ای تی هستم خیلی مفید بود ازین بهتر پیدا نکردم نمیدونم چطوری ازتون تشکر کنم دعا میکنم عاقبت بخیر بشین
یه مشکلی داشتم قسمت ۱۴ اموزش رو نمیتونم تو سایت پیدا کنم اگه زحمت نیست لینکش رو برام بزارین؟؟؟

علیرضا
پاسخ به  novid
13 سال قبل

با سلام.
خوشحالیم که آموزش ها مورد توجه شما قرار گرفتن .
با اجازه از دوست عزیزم آقای موسوی .
لینک : https://www.gooyait.com/1391/11/16/c-sharp-tutorial-part-14.html
موفق باشید ….

novid
پاسخ به  علیرضا
13 سال قبل

جناب زارع عزیز از پاسخ گویی شما متشکرم
براتون ارزوی موفقیت میکنم
باز هم به خاطر این اموزش معرکه از شما عزیزان تشکر میکنم واقعا خسته نباشید
بی صبرانه قسمت های بعدی هستم

asal
13 سال قبل

سلام آقای موسوی،من برنامه ای میخوام بنویسم که فایل رو به صورت ورد دریافت کنه و برنامه ای که داخل فایل به صورت سی شارپ هست رو بخونه و هر کلاس فایل ورودی رو در فایل دیگه چاپ کنه، این برنامه رو با سی شارپ میخوام بنویسم،ممنون میشم اگه کمکم کنین،اگه میشه راهنمایی هاتونو به ایمیلم بفرستین بخونم،اگه خود برنامه رو هم داشته باشین خیلی کمک بزرگی میکنین.مرسی

میلاد
13 سال قبل

سلام
آقای موسوی در مورد ویندوز سرور خوب متوجه نشدم
یعنی اگه بخوام یه سایت راه اندازی کنم نیاز به یه ویندوز سرور قانونی دارم و احتمالا یه کامپیوتر سرور.
خب این یه ضعف بزرگه در مقابل Java و PHP که از لینوکس استفاده میکنه
سوال دیگه اینه که تو سایت tiobe.com زبان C رو به عنوان محبوبترین زبان معرفی کرده اگه C++ همون سی هست که شی گرایی بهش اضافه کردن پس چرا هنوز از سی استفاده میشه
ببخشید این سوالارو اینجا مطرح کردم

ایمان شهسواری
13 سال قبل

سلام . اول تشکر ویژه کنم بابت زحماتی که می کشید واقعا جای تقدیر داره . من رشته کامپیوتر هستم خودم ولی به جرات میگم که اموزشهای شما خیلی به درد من خورد و توی درس برنامه نویسی پیشرفته ۲ خیلی تونستم از این آموزشها کمک بگیرم . من فایل های PDF تمامی قسمت هارو ذخیره کردم و دوستانمم دادم همچنین آدرس سایت مفید و با ارزشتون رو . بابت تمام زحماتتون متشکرم و امیدوارم توی زندگیتونم همینجور موفق باشید . ایمان شهسواری از بندرعباس ♥

ایمان شهسواری
پاسخ به  Jeff Mosawy
13 سال قبل

محتاجیم به دعا دوست عزیز . آدمهایی مثل شما که دانششون رو به هر طریقی در اختیار دیگران قرار میدن نیاز به دعا ندارن چرا که وجودتون پاکه . مرسی از سایت خوبتون .

نادیا
13 سال قبل

سلام میخواستم راهنمایی ازتون بگیرم برای وب سایتم میخوام سبد خرید بذارم
یعنی حالت فروشگاه بگیره
نمیدونم requeste قیمت اجناس انتخابی رو چطور به بانک بفرستم میشه راهنماییم کنید ممنون

صهیب
پاسخ به  نادیا
12 سال قبل

دوست عزیز سلام
این کار رو میشه با افزونه ها و درگاه های پرداخت انجام داد

نادیا
13 سال قبل

خیلی نیاز دارم ممنون میشم هر کس میتونه کمکم کنه

مریم موسوی
12 سال قبل

سلام ممنون از آموزشهاتون میشه قسمتهای آموزشی گذشته رو برام میل کنید چون به اینترنت دسترسی همیشگی ندارم.

سپهر سروری
11 سال قبل

بخش های بعدی ای در کار نیست ؟؟؟؟؟؟ واقعا حیفه همچین آموزش خوبی نیمه تموم بمونه