خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را
24. آموزش برنامه نویسی به زبان ساده . مدیریت خطاها با دستور Try ... Catch

در محیط برنامه نویسی خطاها همه جا هستند، بطور کلی یک اصطلاحی بین برنامه نویسان وجود دارد که ما هیچ نرم افزار Free Bug (بدون خطا) در دنیا نداریم.

اما می توان با برنامه نویسی محافظه کارانه و تست و مرور چندین و چند باره کدها میزان این خطاها را به حداقل کاهش داد. بعضی وقتها هم نمی توان از این خطاها اجتناب کرد، حالتی را در نظر بگیرید که برنامه شما می خواهید یک فایل را از سیستم عامل ویندوز بخواند، حالا به هر دلیل ممکن است سیستم عامل اجازه خواندن آن فایل را ندهد، چه می شود؟ قطعا یک خطای مدیریت نشده پیش می آید.
برای مدیریت خطاها ویژوال بیسیک دات نت به ما مکانیزم Try ... Catch را ارائه کرده است. در این آموزش با نحوه استفاده از این دستور و همینطور دلایل عملی استفاده از این دستور آشنا می شویم.
پروژه دفتر تلفن را باز کنید و برنامه را اجرا کنید. بر روی دکمه افزودن کلیک کنید و مشابه تصویر زیر اطلاعات را پر کنید. دقت کنید که برای شخص مربوطه حتما کد 12 را وارد کنید. تعمدا گفتیم کد 12 را وارد کنید، چون کد 12 قبلا به شخص دیگری اختصاص داده شده است و تکراری می باشد.
حالا بر روی دکمه "ثبت اطلاعات" کلیک کنید. تصویر زیر به شما نشان می دهد چه اتفاقی افتاده است.
یک خطای مدیریت نشده پیش آمد و اجرای برنامه بصورت ناگهانی متوقف شد. در ادامه به روش استفاده از دستورات Try ... Catch برای جلوگیری از این نوع خطاهای پیش بینی نشده می پردازیم.
دستور try ... Catch در حالت کلی به شکل زیر می باشد.
ما کدهای برنامه مان را بین محدوده Try و Catch می نویسیم. اگر در حین اجرای کدهایی که در این محدوده قرار دارند خطای غیر منتظره ای پیش بیاید، برنامه دیگر متوقف نخواهد شد اما کدهای بعد از وقوع خطا اجرا نمی شوند و اجرای برنامه به اولین خط کد بعد از Exception منتقل می شود. محدوده بین Exception و End Try محلی است که ما می توانیم کدهای اختصاصی برای مدیریت خطا را بنویسیم.
در ادامه تابع InsertRecord را که با استفاده از دستورات Try ... Catch بازنویسی کرده ایم می بینید.
همانطور که می بینید کدهای قبلی را داخل بدنه Try ... Catch قرار داده ایم. در قسمت Exeption هم تکه کد زیر را نوشته ایم.
به نحوه استفاده از ex دقت کنید. ex در اینجا یک نمونه از شیء Exception می باشد. شیء Exception اطلاعات خطاهای اتفاق افتاده را در خودش دارد و برای ما بسیار کاربردی می باشد. همانطور که می بینید، ما با استفاده از ویژگی Message که از ویژگیهای شیء Exception می باشد و در واقع شرح خطا را در خودش دارد، به جای توقف ناگهانی برنامه این شرح را به کاربر نشان می دهیم.
مجددا برنامه را اجرا کنید و مانند مثال قبلی اطلاعات زیر را در فرم افزودن پر کنید. کد را همان 12 قرار بدهید تا خطا پیش بیاید.
همانطور که خودتان هم متوجه شدید، دیگر برنامه متوقف نشد و اینبار فقط پیغام خطا به کاربر نمایش داده شد.
پروژه خود را ذخیره کنید. در آموزشهای بعدی به ادامه تکمیل آن خواهیم پرداخت.
آموزش قبلی : 23. آموزش برنامه نویسی به زبان ساده . افزودن اطلاعات به جداول پایگاه داده
آموزش بعدی : 25. آموزش برنامه نویسی به زبان ساده . استفاده از TabIndex و Focus

اما می توان با برنامه نویسی محافظه کارانه و تست و مرور چندین و چند باره کدها میزان این خطاها را به حداقل کاهش داد. بعضی وقتها هم نمی توان از این خطاها اجتناب کرد، حالتی را در نظر بگیرید که برنامه شما می خواهید یک فایل را از سیستم عامل ویندوز بخواند، حالا به هر دلیل ممکن است سیستم عامل اجازه خواندن آن فایل را ندهد، چه می شود؟ قطعا یک خطای مدیریت نشده پیش می آید.
برای مدیریت خطاها ویژوال بیسیک دات نت به ما مکانیزم Try ... Catch را ارائه کرده است. در این آموزش با نحوه استفاده از این دستور و همینطور دلایل عملی استفاده از این دستور آشنا می شویم.
اگر آموزشهای قبلی را ندیده اید، به مطالعه این آموزش نپردازید، در واقع این آموزش یک مجموعه سریالی است که مطالب آن بصورت تنگاتنگ در ارتباط با یکدیگر می باشند. برای شروع این دوره آموزشی بر روی لینک آغاز دوره آموزشی کلیک کنید.
آغاز دوره آموزشی
فهرست آموزشهای دوره آموزش برنامه نویسی به زبان ساده از مبتدی تا پیشرفته بصورت کاملا کاربردی
آغاز دوره آموزشی
فهرست آموزشهای دوره آموزش برنامه نویسی به زبان ساده از مبتدی تا پیشرفته بصورت کاملا کاربردی
بیایید یک خطای مدیریت نشده پیش بیاوریم
پروژه دفتر تلفن را باز کنید و برنامه را اجرا کنید. بر روی دکمه افزودن کلیک کنید و مشابه تصویر زیر اطلاعات را پر کنید. دقت کنید که برای شخص مربوطه حتما کد 12 را وارد کنید. تعمدا گفتیم کد 12 را وارد کنید، چون کد 12 قبلا به شخص دیگری اختصاص داده شده است و تکراری می باشد.

حالا بر روی دکمه "ثبت اطلاعات" کلیک کنید. تصویر زیر به شما نشان می دهد چه اتفاقی افتاده است.

یک خطای مدیریت نشده پیش آمد و اجرای برنامه بصورت ناگهانی متوقف شد. در ادامه به روش استفاده از دستورات Try ... Catch برای جلوگیری از این نوع خطاهای پیش بینی نشده می پردازیم.
روش استفاده از دستور Try ... Catch برای مدیریت خطاهای پیش بینی نشده
دستور try ... Catch در حالت کلی به شکل زیر می باشد.

ما کدهای برنامه مان را بین محدوده Try و Catch می نویسیم. اگر در حین اجرای کدهایی که در این محدوده قرار دارند خطای غیر منتظره ای پیش بیاید، برنامه دیگر متوقف نخواهد شد اما کدهای بعد از وقوع خطا اجرا نمی شوند و اجرای برنامه به اولین خط کد بعد از Exception منتقل می شود. محدوده بین Exception و End Try محلی است که ما می توانیم کدهای اختصاصی برای مدیریت خطا را بنویسیم.
در ادامه تابع InsertRecord را که با استفاده از دستورات Try ... Catch بازنویسی کرده ایم می بینید.

همانطور که می بینید کدهای قبلی را داخل بدنه Try ... Catch قرار داده ایم. در قسمت Exeption هم تکه کد زیر را نوشته ایم.

به نحوه استفاده از ex دقت کنید. ex در اینجا یک نمونه از شیء Exception می باشد. شیء Exception اطلاعات خطاهای اتفاق افتاده را در خودش دارد و برای ما بسیار کاربردی می باشد. همانطور که می بینید، ما با استفاده از ویژگی Message که از ویژگیهای شیء Exception می باشد و در واقع شرح خطا را در خودش دارد، به جای توقف ناگهانی برنامه این شرح را به کاربر نشان می دهیم.
تست مجدد برنامه بعد از استفاده از دستور Try ... Catch
مجددا برنامه را اجرا کنید و مانند مثال قبلی اطلاعات زیر را در فرم افزودن پر کنید. کد را همان 12 قرار بدهید تا خطا پیش بیاید.

همانطور که خودتان هم متوجه شدید، دیگر برنامه متوقف نشد و اینبار فقط پیغام خطا به کاربر نمایش داده شد.

معمولا سعی کنید کدهای خود را با استفاده از دستورات Try ... Catch بنویسید، تا اگر احیانا در هنگام اجرای برنامه خطای پیش بینی نشده و غیر منتظره ای هم پیش آمد، به جای توقف برنامه شرح خطای پیش آمده به کاربر نمایش داده شود.
پروژه خود را ذخیره کنید. در آموزشهای بعدی به ادامه تکمیل آن خواهیم پرداخت.
آموزش قبلی : 23. آموزش برنامه نویسی به زبان ساده . افزودن اطلاعات به جداول پایگاه داده
آموزش بعدی : 25. آموزش برنامه نویسی به زبان ساده . استفاده از TabIndex و Focus
نمایش دیدگاه ها (0 دیدگاه)
دیدگاه خود را ثبت کنید: