تعبير 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>