القائمة الرئيسية

الصفحات

معالجة الأخطاء في الجافاسكربت | JavaScript Try ... Catch

تعبير Try ... Catch



يسمح التعبير Try...Catch بفحص الأخطاء لمجموعة من الأكواد .




معالجة  الأخطاء في الجافاسكربت JavaScript


عند فتح صفحات الانترنت فإن بعض الرسائل تظهر لنا وتخبرنا بأن هناك خطأ او كود منتهي الصلاحية ثم يسألنا " هل تريد تصحيح الخطأ" . بصراحة إن رسائل الأخطاء مفيدة للمطورون والمبرمجون إلا أنها ليست مفيدة للمستخدمون لذلك نرى غالباً خروج المستخدم عند مشاهدة رسائل كهذه .

في هذا الدرس ستتعلم كيفية تصحيح الأخطاء والتحكم بها وبذلك لن تخسر زوار موقعك .




تعبير Try...Catch


يسمح التعبير Try...Catch بفحص الأخطاء لمجموعة من الأكواد . تحتوي خاصية try على الكود الذي يجب تشغيله ثم catch التي بدورها تحتوي على الكود الذي سيظهر رسالة الخطأ في الكود .

التركيبة


try
	  {
	  الكود الذي سيتم تشغيله
	  }
	  catch(err)
	  {
	  الكود الذي سيظهر رسالة الأخطاء
	  }
	  

لاحظ بأن تعبير try...catch مكتوب بأحرف صغيرة . لا يجب كتابته بأحرف كبيرة لأنه سيولد أخطاء في الكود .

شرح المثال التالي

يفترض في المثال التالي إظهار رسالة "مرحباً بك في المعهد العربي للبرمجة" عند الضغط على الزر . الا أن هناك خطأ في كتابة الكود في الكود الوظيفي message() .
أي أن الوظيفة alert() تم كتابتها بشكل خاطئ وهو adddlert() . وهنا يحدث خطأ في الجافاسكربت . وباستخدام التعبير catch سيحصل على الخطأ ويظهر الخطأ الذي حصل برسالة أخرى لمعرفة نوع الخطأ وإصلاحه .

مثال
<html>
	  <head>
	  <script type="text/javascript">

	  var txt="";
	  function message()
	  {
	  try
	  {
	  adddlert("مرحباً بالزائر");
	  }
	  catch(err)
	  {
	  txt="حصل خطأ في هذه الصفحة . nn";
	  txt+="وصف الخطأ هو : " + err.message + "nn";
	  txt+="اضغط OK للمتابعةnn";
	  alert(txt);
	  }
	  }

	  </script>
	  </head>
	  <body>

	  <input type="button" value="إظهار الرسالة" onclick="message()" />

	  </body>
	  </html>





في المثال التالي سيتم استخدام صندوق التوكيد لعرض رسالة تخبر المستخدم بأن يضغط على OK لإكمال إظهار الصفحة أو إلغاء Cancel للذهاب الى الرصفحة الرئيسية . ان تم اعطاء نتيجة صحيحة فإن الكود لن يظهر شي .

مثال
<html>
	  <head>
	  <script type="text/javascript">

	  var txt="";
	  function message()
	  {
	  try
	  {
	  adddlert("مرحباً بك أيها الزائر");
	  }
	  catch(err)
	  {
	  txt="هناك مشكلة في هذه الصفحة nn";
	  txt+="إضغط على OK لعرض النتيجة , n";
	  txt+="أو إلغاء Cancel للذهاب إلى الصفحة الرئيسية nn";
	  if(!confirm(txt))
	  {
	  document.location.href="http://www.w3arabiconline.com/";
	  } } }

	  </script>
	  </head>
	  <body>

	  <input type="button" value="إظهار الرسالة" onclick="message()" />

	  </body>
	  </html>





تعبير throw


يمكن استخدام تعبير throw مع try … catch لإنشاء استثناء للخطأ .

ستتعلم المزيد عن هذا التعبير في الدرس القادم .

تعبير throw



يمكن استخدام تعبير throw مع try … catch لإنشاء استثناء للخطأ .



تعبير throw


يسمح لك تعبير throw لإنشاء استثناء للخطأ عند استخدام تعبير try … catch ويمكنك التحكم بالبرنامج الذي تعمل به لتوليد رسائل خطأ بأكثر دقة .

التركيبة


throw exception
		  

يمكن أن يكون الاستثناء نص string أو رقم integer أو Boolean أو موضوع object .

ملاحظة : ان throw مكتوبة بأحرف صغيرة لذلك لاتكتبها بأحرف كبيرة لأنه سيولد لديك خطأ جافاسكربت .

في المثال التالي تم إنشاء متغير اسمه x . اذا كانت قيمة x أكبر من 10 أو أصغر من 5 أو حتى ليست القيمة رقماً فإن رسالة خطأ ستظهر باستخدام خاصية throw . ستقوم الخاصية throw بتحصيل نوع الخطأ وإظهار رسالة الخطأ الخاصة به في المثال التالي :

مثال
<html>
		  <body>
		  <script type="text/javascript">

		  var x=prompt("ضع رقم بين 5 و 10 : ","");
		  try
		  {
		  if(x>10)
		  {
		  throw "Err1";
		  }
		  else if(x<5)
		  {
		  throw "Err2";
		  }
		  else if(isNaN(x))
		  {
		  throw "Err3";
		  }
		  }
		  catch(err) {
		  if(err=="Err1") {
		  document.write("خطأ , الرقم الذي أدخلته كبير جداً ");
		  }
		  if(err=="Err2") {
		  document.write("خطأ , الرقم الذي أدخلته صغير جداً ");
		  }
		  if(err=="Err3")
		  {
		  document.write("خطأ القيمة التي أدخلتها ليست رقماً ");
		  }
		  }

		  </script>
		  </body>
		  </html>