ساختار دستوری try-catch در جاوا اسکريپت

6 / 10
از 1 کاربر

در این قسمت از آموزش جاوا اسکریپت به تعریف ساختار دستوری try-catch در جاوا اسکریپت می پردازیم . در برنامه نويسی و طراحی سایت ، گاهی اوقات ممکن است خطاهايي رخ دهد . اين خطاها می تواند دلايل مختلفی داشته باشد ، از قبيل :

√ اشتباه تايپی در متن دستورات صفحه از سوی طراح صفحه .
√ واردنمودن اطلاعات اشتباه يا نادرست از سوی کاربر .
√ انواع خطاهای ممکن زمان اجرای مرورگر .

اگر کاربر که در حال مشاهده يک صفحه است ، در هنگام کار با خطا مواجه شود و عملا راهی برای رفع آن اشکال برايش وجود نداشته باشد ، مطمًننا از ادامه مشاهده و کار با صفحه صرف نظر خواهد کرد . اين وظيفه برنامه نويس است که با برنامه ريزی صحيح ، خطاهای احتمالی را پيدا کرده و راه حل های مناسب را برای آنها طراحی کند .

از ساختار دستوری try ... catch در جاوا اسکريپت ، برای پيدا کردن خطاها و error های احتمالی و تعيين اقدامات اصلاحی در صورت بروز خطا ، استفاده می شود .
اين ساختار از 2 بخش try و catch تشکيل شده است . کد اصلی برنامه که می خواهيم اجرا شود و احتمال می دهيم دارای خطا باشد ، را در قسمت try قرار داده و اقدامات اصلاحی را که می خواهيم در صورت بروز خطا انجام شود ، را در قسمت catch می گذاريم .
برنامه در هنگام رسيدن به ساختار ، دستورات قسمت try را انجام می دهد و در صورت مواجه با خطا در دستورات ، بخش catch را اجرا خواهد کرد .

نکته مهم : در صورت عدم برخورد با خطا ، دستورات قسمت catch به هيچ وجه اجرا نخواهد شد .
نکته مهم : در قسمت catch ، می توان در پرانتز مقابل واژه کليدی catch ، يک عبارت يا متغير تعريف کرد ، که اين متغير خصوصيات error به وجود آمده را در خود نگهداری کرد . يکی از اين خواص ، شرح يا description خطا است ، که می توان به شکلی که در مثال 2 نشان داده شده است ، به شرح خطا دسترسی داشته و آنرا به کاربر اطلاع داد .
شکل کلی تعريف يک ساختار try ... catch به صورت زير است :

try
  {
    دستورات مورد نظر برای اجرا که احتمال خطا دارد
  }
catch ( نام يک متغير )
  {
    اقدامات اصلاحی مورد نظر در صورت وقوع خطا
  }

مثال 1 : در مثال زير ، يک تابع به نام show_error قرار داده شده است . اين تابع توسط دکمه فرمان click me فراخوانی شده و قصد دارد تا يک پيغام خوش آمد به کاربر اعلام کند . اما در متن دستور يک اشتباه تايپی وجود دارد و آن اينکه به جای عبارت documnet.write ، نوشته شده است document.wriet ، به همين دليل پيغام خروجی چاپ نشده و در صفحه error رخ می دهد . اگر دقت کنيد در نوار پايين مرورگر ( Status Bar ) علامت Error on page قرار گرفته است . برای مشاهده error ، بر روی آيکون خطا کليک کنيد . در اينجا به دليل عدم پيش بينی خطا هيچ واکنشی از سوی مرورگر انجام نمی شود :

< script type="text/javascript" >
function show_error()
 {
   document.wriet ( "Welcome User!" ) ;
 }
< /script >
< input type="button" id="Button1" value="click me !" onclick="show_error()" />

در مثال زير ، تابع show_error2 قرار داده شده است . اين تابع نيز همانند تابع قبلی می خواهد يک پيام خوش آمد به کاربر اعلام کند . اين تابع نيز دارای اشتباه تايپی در دستور document.write است ، با اين تفاوت که با ساختار try ... catch قرار داده شده ، تعيين شده است در صورت بروز خطا يک پيام هشدار به کاربر اعلام شود . توسط متغير err که در پرانتز مقابل واژه کليدی catch تعريف شده است ، متن پيام error در خاصيت description ذخيره شده و سپس به کاربر اعلام می شود . به کد مثال دقت کنيد :

< script type="text/javascript" >
function show_error2 ( )
  {
    try
  {
   document.wriet ( "Welcome User!" ) ;
  }
   catch ( err )
  {
   alert ( "There was an error on this page . \n\n" + "Error Description : " + err.description +"\n\nClick Ok for continue" ) ;
  }
  }
< /script >
< input type="button" id="btnclick2" value="click me ! to see error report" onclick="show_error( )" />

ارسال نظر و نظرات ثبت شده