جملة try/catch/finally في JavaScript
- الصفحة السابقة throw
- الصفحة التالية var
- العودة إلى المستوى السابق دليل مرجعي تعليمات JavaScript
التعريف والاستخدام
تعالج جملة try/catch/finally الأخطاء التي قد تحدث في كتلة الأوامر، بينما تظل الأوامر تعمل.
يمكن أن تكون الأخطاء بسبب الأخطاء البرمجية التي ارتكبها المبرمج، أو الأخطاء التي تسببها المدخلات الخاطئة، أو حالات غير متوقعة أخرى.
حاول جملة يسمح لك بتعريف كتلة من الأوامر التي يجب اختبارها عند التنفيذ.
إذا حدث خطأ في كتلة try، تسمح كتلة catch بتعريف كتلة الأوامر التي يجب تنفيذها.
كتلة finally تسمح لك بتنفيذ الأوامر بعد كتلة try و catch، بغض النظر عن النتائج.
ملاحظة:كتلة catch و كتلة finally هما اختياريتان، ولكن يجب استخدام إحداهما (أو كليهما) عند استخدام جملة try.
نصيحة:عند حدوث خطأ، يوقف JavaScript عادةً، ويقوم بإنشاء رسالة خطأ. استخدم جملة throw لإنشاء أخطاء مخصصة (لإطلاق استثناءات). إذا استخدمت throw مع try و catch، يمكنك التحكم في تدفق البرنامج وتوليد رسائل خطأ مخصصة.
للتعرف على المزيد حول أخطاء JavaScript، يرجى قراءة دروس أخطاء JavaScript.
مثال
في هذا المثال، قمنا بكتابة خطأ في الكود (في كتلة try).
بمجرد تنفيذ هذا المثال، يجب أن يُظهر "مرحبًا بالضيف!"، لكن تم كتابة اسم alert بشكل غير صحيح.
كتلة catch ستقوم باستقبال الأخطاء، وتنفيذ الأوامر للتعامل معها:
<!DOCTYPE html> <html> <body> <p id="demo"></p> <script> try { adddlert("مرحبًا بالضيف!"); } catch(err) { document.getElementById("demo").innerHTML = err.message; } </script> </body> </html>
هناك أمثلة TIY أكثر في الأسفل من الصفحة.
النحو
try { tryCode - كتلة الأوامر التي يجب تجربتها } catch(err) { catchCode - كتلة الأوامر لمعالجة الأخطاء } finally { finallyCode - كتلة الأوامر التي يجب تنفيذها بغض النظر عن نتائج try / catch }
قيمة المعامل
معامل | وصف |
---|---|
tryCode | مطلوب. يجب اختبار كتلة الأوامر هذه أثناء التنفيذ. |
err | مطلوب، إذا استخدمت مع catch. تحديد المتغير المحلي المشار إليه بالخطأ. يمكن للمتغير التأشير إلى Object Error (يحتوي على معلومات حول الخطأ الذي حدث، مثل رسالة "'addlert' is not defined"). إذا كان الخطأ قد تم إنشاؤه بواسطة جملة throw، فإن المتغير يشير إلى الكائن المحدد في جملة throw (انظر "مزيد من الأمثلة"). |
catchCode | اختياري. يجب تنفيذ كتلة الأوامر هذه إذا حدث خطأ في كتلة try. إذا لم يحدث خطأ، لن تنفذ هذه الكتلة الأوامر أبدًا. |
finallyCode | اختياري. يجب تنفيذ كتلة الأوامر هذه بغض النظر عن نتائج try / catch. |
تفاصيل تقنية
إصدار JavaScript: | ECMAScript 3 |
---|
مزيد من الأمثلة
مثال
في هذا المثال يتم التحقق من الإدخال. إذا كان القيمة خاطئة، يتم رمي الاستثناء (err).
استخدام جملة catch لالتقاط الاستثناءات (err) وعرض رسالة خطأ مخصصة:
<!DOCTYPE html> <html> <body> <p>الرجاء إدخال عدد بين 5 و 10:</p> <input id="demo" type="text"> <button type="button" onclick="myFunction()">اختبار الإدخال</button> <p id="message"></p> <script> function myFunction() { var message, x; message = document.getElementById("message"); message.innerHTML = ""; x = document.getElementById("demo").value; try { if(x == "") throw "is Empty"; if(isNaN(x)) throw "not a number"; if(x > 10) throw "too high"; if(x < 5) throw "too low"; } catch(err) { message.innerHTML = "Input " + err; } } </script> </body> </html>
مثال
استخدام جملة finally سيسمح لك تنفيذ الكود بعد try و catch بغض النظر عن النتيجة:
function myFunction() var message, x; message = document.getElementById("message"); message.innerHTML = ""; x = document.getElementById("demo").value; try { if(x == "") throw "Empty"; if(isNaN(x)) throw "Not a number"; if(x > 10) throw "Too high"; if(x < 5) throw "Too low"; } catch(err) { message.innerHTML = "خطأ: " + err + "."; } finally { document.getElementById("demo").value = ""; } }
يدعم المتصفح
الجملة | الشروم | IE | Firefox | Safari | Opera |
---|---|---|---|---|---|
try/catch/finally | الدعم | الدعم | الدعم | الدعم | الدعم |
- الصفحة السابقة throw
- الصفحة التالية var
- العودة إلى المستوى السابق دليل مرجعي تعليمات JavaScript