تبلیغات
banner
banner
banner
تبلیغات
banner

فیلم های آموزشی : 36 +

تعداد کاربران : 44 +

تعداد کل مطالب : 338 +

تعداد نظرات : 33 +

حضرت محمد (ص) : طلب علم بر هر انسانی واجب است ،همانا خداوند علم آموزان را دوست دارد.

آموزش مقدماتی تا پیشرفته سی شارپ بخش صد و پنجاه و پنجم


 به نام خداوندجان آفرین حکیم سخن در زبان آفرین



آموزش مقدماتی تا پیشرفته سی شارپ بخش صد و پنجاه و پنجم

سلام به همه کاربران وبسایت لندلرن

با آموزش مقدماتی تا پیشرفته سی شارپ بخش صد و پنجاه و پنجم همراه باشید.


كنترل استثنا ها در برنامه:

همانطور كه قبلا گفتم يك برنامه ممكن است در طول اجراي خود با شرايط پيش بيني نشده اي مواجه شود .

براي مثـال در برنامه ي قبلي مشاهده كرديد كه اگر كاربر نام فايل را در كنترل txtAddress به صورت نادرست وارد كند، برنامه با يك حالت پيش بيني نشده مواجه مي شود.

اما با هيچ كدام از ابزارها و روشهايي كه در قسمتهاي قبلي با آنها آشنا شديم نمي تـوان از رخ دادن چنين حالتي جلوگيري كرد و يا آنها را در طي برنامه كنترل كرد .

هنگامي كه برنامه با يك چنين حالت استثنايي مواجه مي شود، براي مثال يك ارتباط شبكه اي در برنامه قطع مي شـود و يـا فايـل مورد نظر براي امري خاص در كامپيوتر پيدا نمي شود، در اصطلاح گفته مي شود كه يك استثنا رخ داده است.

رخ دادن يك استثنا هـم مـي توانـد بـه وسـيله كلاسـهاي تعريـف شـده در NET .اعـلام شـود

(بـراي مثـال سـعي كنيـد بـا اسـتفاده از كـلاس  System.IO.File ،فايلي را باز كنيد كه وجو د ندارد )

هم مي تواند به وسيله ي متدي درون كلاسـهاي تعريـف شـده در برنامه اعلام شود.

(براي مثال پارامترهايي كه به يكي از متدهاي كلاس فرستاده اند داراي مقدار اشتباهي است )

براي اعلام كردن اينكه يك استثنا رخ داده است، ابتدا بايد يك شيئ از كلاس Exception) و يا كلاسـهاي مـشتق شـده از اين كلاس ) ايجاد شود و اطلاعات مربوط به استثناي به وجود آمده در اين شيئ قرار گيرد .

سپس اين شيئ در اصـطلاح بايـد توسـط  برنامه اي كه با اين استثنا مواجه شده است، پرتاب شود.

ممكن است اين عبارت كه “شيئ حاوي اطلاعات خطا بايد از طرف برنامه پرتاب شود” در ابتدا كمي گيج كننده و يا نا مفهوم به نظر برسد و يا ممكن است اين سوال به وجود بيايد كه بعد از پرتاب شدن اين شيئ چگونه مي توان استثناي به وجود آمده را كنترل كرد؟

خب، براي كنترل اين نوع حالتها در كد معمولاً از بلاك هاي catch/try استفاده مي كنند.

به عبارت ديگر كدي كه ممكن است با يك استثنا مواجه شود را درون يك بلاك try قرار مي دهند.

اگر در هنگام اجراي اين كد استثنايي رخ داد، شيئ اي از نوع Exception به وجود آمده و پرتاب مي شود .

در اين حالت اولين بلاك catch كه شرايط دريافـت شـيئ پرتـاب شده را داشته باشد، آن را دريافت مي كند و به كنترل استثناي به وجود آمده مي پردازد .

بعد از اينكه يكي از بلاك هاي catch موجود در برنامه توانست شيئ پرتاب شده را دريافت كند، به بررسـي حالـت اسـتثناي بـه وجود آمده مي پردازد .

در اين حالت اگر اين بلاك بتواند، استثناي به وجود آمده را تصحيح كرده و يـا بـدون در نظـر گـرفتن آن بـه اجراي برنامه ادامه مي دهد.

در غير اين صورت پيغام مناسبي را به كاربر نمايش دهد و برنامه را به اتمام مي رساند .

بلاك هاي catch/try با ساختاري به صورت زير در برنامه ايجاد مي شوند .

نكته:

درك تفاوت بين خطاهاي موجود در كد برنامه با حالتهاي استثنايي كه ممكن است برنامه با آنها مواجه شود از اهميت زيـادي برخوردار است .

خطاهاي موجود در كد برنامه معمولا به علت خطاي برنامه نويس در هنگام پياده سازي كد برنامه است .

اما استثنا هـا معمولاً به علت رخ دادن شرايط قابل پيش بيني اما اجتناب ناپذير است .

براي مثال تصور كنيد كه برنامه در شرايطي خـاص در يـك حلقه ي بي نهايت قرار مي گيرد و كاربر ناچار به بستن برنامه مي شود .

چنين رخ دادي به علت اشتباه برنامـه نـويس اسـت و خطـاي برنامه نويس محسوب مي شود .

اما تصور كنيد در حال خواند اطلاعات يك فايل در شبكه هستيد كه ناگهان شبكه قطـع مـي شـود .

وقوع چنين شرايطي در برنامه قابل پيش بيني است اما واضح است كه نمي توان از آنها جلوگيري كـرد .

ايـن دسـته مـوارد جزئـي از استثنا ها به شمار مي روند و بايد به درستي در برنامه كنترل شوند .

با قسمت صد و پنجاه و ششم همراه ما باشید.

کانال سروش مدرس : @Barnamedan


درباره نویسنده
سجاد اسدی
   سجاد اسدی

سجاد اسدی هستم دانشجوی رشته نرم افزار و علاقه مند به تدریس و یادگیری دروس مرتبط با تکنولوژی نرم افزار و اینترنت اشیاء جهت ارتباط با بنده مراجعه شود به آیدی سروش و تلگرام : @ordervira و پیج بنده در اینستاگرام instagram.com/sajjadred11 ""اللهم صل علی محمد و آل محمد"" برای شروع هیچ وقت دیر نیست. "الهم عجل لولیک الفرج"

دیدگاه بگذارید

avatar
  اشتراک  
اطلاع رسانی

aparat کانال آپارات

soroush کانال سروش

کانال آی گپ