آموزش سیشارپ C# – بخش ۳۴
- مقدمه
هنگامی که شروع به کدنویسی میکنید و در حال طراحی و پیادهسازی یک برنامهی خاصی توسط یک زبان خاصی هستید، بلاشک درمیان راه با مشکلاتی روبرو خواهید شد که بدلایلی مانند حواسپرتی، عدم تسلط کافی و … باعث ایجاد خطا در عملکرد برنامه میشود؛ یا جتی ممکن است برنامه اصلاً Compile نشود!
یکی از تکنیکهایی که در هنگام برنامهنویسی باید به آن تسلط کافیای داشته باشید، نحوه Debug کردن برنامه (اشکالزدایی) است. بهصورت کلی ما دو نوع خطا داریم؛ Syntax Error (خطای نحوی) و Logic Error (خطای منطقی). یک کامپایلر و IDE (در اینجا یعنی Visual Studio) تنها میتواند خطاهایی که بدلیل نوشتن اشتباه کد و یا جا انداختن یک Semicolon را ردیابی کند (Syntax Error)، اما هیچگاه نمیتواند که یک خطای منطقی مثل تقسیم یک عدد بر صفر را پیدا کند!
- اشکالزادایی برنامه (Debugging) – قسمت دوم
یکی دیگر از خطاهای بسیار متداول، خطایی با نام Run-Time Error میباشد؛ که باعث میشود نرمافزار شما به اصطلاح Crash کند. خود برنامه در ابتدا بدون مشکل Compile و اجرا میشود و مشکلی نخواهید دید، اما مشکلی که ممکن است بعداً برای شما اتفاق بیفتد، Crash کردن برنامه شما در حین اجرا است که موجب میشود نرمافزار شما کارایی خود را از دست بدهد و دیگر قادر به ادامه انجام عملیات خود نباشد.
یکی از متداولترین خطاهای فوق، سعی در تقسیم یک مقدار به «صفر» است! در کد زیر، همانطور که مشاهده میکنید ما در حال تقسیم یک مقدار به صفر است که باعث ایجاد خطای Run-Time میشود.
وقتی که برنامه را کامپایل میکنید، Visual Studio مشکلی را متوجه نخواهد شد و برنامه بدون هیچ ایرادی شروع به کار میکند؛ اما همینکه بر روی button1 کلیک کنید، خواهید دید که خطایی بهشکل زیر را مشاهده خواهید کرد:
باتوجه به خطای فوق، میتوان متوجه شد که مشکل ناشی از تقسیم عددی به صفر است، اما فرض کنید که این برنامه بر روی سیستم کاربری در حال اجرا است که چنین مشکلی بوجود میآید؛ چه هزینهی سنگینی را باید تقبل کرد!
یکی دیگر از خطاهای ممکن و متدوال، خطای زیر است. در کد زیر، ما سعی میکنیم که فایلی را باز کنیم که در سیستم ما وجود ندارد. (آدرس داده شده اشتباه است!)
همانطور که در خطا میبینید، باز هم Visual Studio سعی در حدس اشتباه میکند و میگوید که فایلی با نام «test10.txt» در مسیر مورد نظر شما وجود ندارد! و چونکه ما به سیشارپ نگفتهایم که اگر فایلی را پیدا نکردی، چهکار کن؛ در نتیجه کنترل خود را از دست میدهد و Crash میکند!
خطاهایی شبیه به خطاهای فوق را میتوان در هنگام کدنویسی از بروز آنها جلوگیری کرد.
خـــــــــــــیلی طول کشید. همچنان منتظر pdf …
بازم تشکر.
سلام دوست عزیزم،
بله؛ میدونم که خیلی طول کشید و تقصیر بنده بود. متأسفانه شرایطی داشتم که نمیتونستم آموزش رو بزارم. انشاءالله از این به بعد سعی میکنم زود به زود بزارم. PDF هم به روی چشم.
البته شرایط امتحانی این نیمسال رو هم امیدوارم که درک کنید.
موفق باشید!
با سلام و تشکر فراوان برای آموزشهای خوبتون من هر روز به این سایت سر می زنم و دنبال ادامه آموزش را می گیرم که خیلی دیر به دیر می گذارید .
بازم به خاطر زحمتتاتون ممنون
سلام دوست عزیزم،
ممنوم از شما که اینقدر به این مطالب اهمیت میدید. والا تا بهحال سابقه نداشته که اینقدر بین دو بخش آموزشی فاصله بیوفته (حدود ۳ هفته) و من واقعاً از این مشکل پیش آمده معذرت خواهی میکنم. امیدوارم که دیگر کمتر از این سری مشکلات برای من پیش بیاد.
موفق باشید!
سلام. خیلی ممنون از آموزش های خوبتون. من چندوقته پیگیر آموزش های شما هستم و الان همشونو خوندم خیلی مفید و به کار میان. میخواستم ببینم آموزش شما چند جلسه ی دیگه داره و تقریبا تا کی کل آموزش تموم میشه. ممنووووووون
سلام دوست عزیزم،
خوشحالم که مورد پسند شما قرار گرفت. متأسفانه از تعداد جلسات اطلاعی ندارم، چونکه آموزشها از قبل نوشته نشدهاند. اما چیزی که فکر می:کنم، حداقل ۱۰۰ الی ۱۳۰ جلسه را خواهد داشت!
موفق باشید!
سلام اقای موسوی شما مطلب یا مقاله یا تحقیقی درمورد موضوع ربات شطرنج باز سراغ ندارید؟ هرچی تو اینترنت سرچ میکنم چیزی پیدا نمیکنم
سلام دوست عزیزم،
متأسفم، اما چنین مقالهای رو ندارم. عذرخواهی میکنم بابت این مسئله.
موفق باشید!
با سلام. در ویژول استودیو C# , باتن روی فرم طراحی هنگامی که در متد آن باتن کد نویسی انجام میدم هنگام ران شدن برنامه باتن ها غیب می شوند و انگار باتنی button در فرم نگذاشتم مشکل کجاست؟ لطفا جواب رو یا ایمیل کنید یا هیچ
ویژوال استودیوی من 2010 و 2008 هست و در هر دو این اتفاق می افته کمک لطفا
دوست عزیزم سلام،
ممکن است که خصیصه Visible اون روی False قرار داده شده.