mamad79
15th May 2013, 10:11 PM
مقدمه
هنگامی که شروع به کدنویسی میکنید و در حال طراحی و پیادهسازی یک برنامهی خاصی توسط یک زبان خاصی هستید، بلاشک درمیان راه با مشکلاتی روبرو خواهید شد که بدلایلی مانند حواسپرتی، عدم تسلط کافی و … باعث ایجاد خطا در عملکرد برنامه میشود؛ یا جتی ممکن است برنامه اصلاً Compile نشود!
یکی از تکنیکهایی که در هنگام برنامهنویسی باید به آن تسلط کافیای داشته باشید، نحوه Debug کردن برنامه (اشکالزدایی) است. بهصورت کلی ما دو نوع خطا داریم؛ Syntax Error (خطای نحوی) و Logic Error (خطای منطقی). یک کامپایلر و IDE (در اینجا یعنی Visual Studio) تنها میتواند خطاهایی که بدلیل نوشتن اشتباه کد و یا جا انداختن یک Semicolon را ردیابی کند (Syntax Error)، اما هیچگاه نمیتواند که یک خطای منطقی مثل تقسیم یک عدد بر صفر را پیدا کند!
اشکالزادایی برنامه (Debugging) – قسمت دوم
یکی دیگر از خطاهای بسیار متداول، خطایی با نام Run-Time Error میباشد؛ که باعث میشود نرمافزار شما به اصطلاح Crash کند. خود برنامه در ابتدا بدون مشکل Compile و اجرا میشود و مشکلی نخواهید دید، اما مشکلی که ممکن است بعداً برای شما اتفاق بیفتد، Crash کردن برنامه شما در حین اجرا است که موجب میشود نرمافزار شما کارایی خود را از دست بدهد و دیگر قادر به ادامه انجام عملیات خود نباشد.
یکی از متداولترین خطاهای فوق، سعی در تقسیم یک مقدار به «صفر» است! در کد زیر، همانطور که مشاهده میکنید ما در حال تقسیم یک مقدار به صفر است که باعث ایجاد خطای Run-Time میشود.
http://cdn.gooyait.com/uploads/1-divide_by_zero.gif
وقتی که برنامه را کامپایل میکنید، Visual Studio مشکلی را متوجه نخواهد شد و برنامه بدون هیچ ایرادی شروع به کار میکند؛ اما همینکه بر روی button1 کلیک کنید، خواهید دید که خطایی بهشکل زیر را مشاهده خواهید کرد:
http://cdn.gooyait.com/uploads/2-divide_by_zero2.gif
باتوجه به خطای فوق، میتوان متوجه شد که مشکل ناشی از تقسیم عددی به صفر است، اما فرض کنید که این برنامه بر روی سیستم کاربری در حال اجرا است که چنین مشکلی بوجود میآید؛ چه هزینهی سنگینی را باید تقبل کرد!
یکی دیگر از خطاهای ممکن و متدوال، خطای زیر است. در کد زیر، ما سعی میکنیم که فایلی را باز کنیم که در سیستم ما وجود ندارد. (آدرس داده شده اشتباه است!)
http://cdn.gooyait.com/uploads/3-file_not_found.gif
همانطور که در خطا میبینید، باز هم Visual Studio سعی در حدس اشتباه میکند و میگوید که فایلی با نام «test10.txt» در مسیر مورد نظر شما وجود ندارد! و چونکه ما به سیشارپ نگفتهایم که اگر فایلی را پیدا نکردی، چهکار کن؛ در نتیجه کنترل خود را از دست میدهد و Crash میکند!
خطاهایی شبیه به خطاهای فوق را میتوان در هنگام کدنویسی از بروز آنها جلوگیری کرد.
هنگامی که شروع به کدنویسی میکنید و در حال طراحی و پیادهسازی یک برنامهی خاصی توسط یک زبان خاصی هستید، بلاشک درمیان راه با مشکلاتی روبرو خواهید شد که بدلایلی مانند حواسپرتی، عدم تسلط کافی و … باعث ایجاد خطا در عملکرد برنامه میشود؛ یا جتی ممکن است برنامه اصلاً Compile نشود!
یکی از تکنیکهایی که در هنگام برنامهنویسی باید به آن تسلط کافیای داشته باشید، نحوه Debug کردن برنامه (اشکالزدایی) است. بهصورت کلی ما دو نوع خطا داریم؛ Syntax Error (خطای نحوی) و Logic Error (خطای منطقی). یک کامپایلر و IDE (در اینجا یعنی Visual Studio) تنها میتواند خطاهایی که بدلیل نوشتن اشتباه کد و یا جا انداختن یک Semicolon را ردیابی کند (Syntax Error)، اما هیچگاه نمیتواند که یک خطای منطقی مثل تقسیم یک عدد بر صفر را پیدا کند!
اشکالزادایی برنامه (Debugging) – قسمت دوم
یکی دیگر از خطاهای بسیار متداول، خطایی با نام Run-Time Error میباشد؛ که باعث میشود نرمافزار شما به اصطلاح Crash کند. خود برنامه در ابتدا بدون مشکل Compile و اجرا میشود و مشکلی نخواهید دید، اما مشکلی که ممکن است بعداً برای شما اتفاق بیفتد، Crash کردن برنامه شما در حین اجرا است که موجب میشود نرمافزار شما کارایی خود را از دست بدهد و دیگر قادر به ادامه انجام عملیات خود نباشد.
یکی از متداولترین خطاهای فوق، سعی در تقسیم یک مقدار به «صفر» است! در کد زیر، همانطور که مشاهده میکنید ما در حال تقسیم یک مقدار به صفر است که باعث ایجاد خطای Run-Time میشود.
http://cdn.gooyait.com/uploads/1-divide_by_zero.gif
وقتی که برنامه را کامپایل میکنید، Visual Studio مشکلی را متوجه نخواهد شد و برنامه بدون هیچ ایرادی شروع به کار میکند؛ اما همینکه بر روی button1 کلیک کنید، خواهید دید که خطایی بهشکل زیر را مشاهده خواهید کرد:
http://cdn.gooyait.com/uploads/2-divide_by_zero2.gif
باتوجه به خطای فوق، میتوان متوجه شد که مشکل ناشی از تقسیم عددی به صفر است، اما فرض کنید که این برنامه بر روی سیستم کاربری در حال اجرا است که چنین مشکلی بوجود میآید؛ چه هزینهی سنگینی را باید تقبل کرد!
یکی دیگر از خطاهای ممکن و متدوال، خطای زیر است. در کد زیر، ما سعی میکنیم که فایلی را باز کنیم که در سیستم ما وجود ندارد. (آدرس داده شده اشتباه است!)
http://cdn.gooyait.com/uploads/3-file_not_found.gif
همانطور که در خطا میبینید، باز هم Visual Studio سعی در حدس اشتباه میکند و میگوید که فایلی با نام «test10.txt» در مسیر مورد نظر شما وجود ندارد! و چونکه ما به سیشارپ نگفتهایم که اگر فایلی را پیدا نکردی، چهکار کن؛ در نتیجه کنترل خود را از دست میدهد و Crash میکند!
خطاهایی شبیه به خطاهای فوق را میتوان در هنگام کدنویسی از بروز آنها جلوگیری کرد.