حاول JavaScript ... catch ... وأخيراً
مثال
هذا المثال به خطأ مطبعي في كتلة try . التنبيه به خطأ إملائي.
تمسك كتلة catch الخطأ وتنفذ الكود لمعالجته:
<p id="demo"></p>
<script>
try {
adddlert("Welcome guest!");
}
catch(err) {
document.getElementById("demo").innerHTML = err.message;
}
</script>
المزيد من الأمثلة أدناه.
التعريف والاستخدام
عند حدوث خطأ ، ستتوقف JavaScript وتنشئ رسالة خطأ.
ملحوظة
المصطلح التقني لهذا هو: JavaScript يطرح استثناء .
تقوم JavaScript بإنشاء كائن خطأ بخاصيتين : الاسم والرسالة .
try...catch...finally
تتعامل مجموعة البيانات مع الأخطاء دون إيقاف JavaScript.
تحدد العبارة try
كتلة التعليمات البرمجية المراد تشغيلها (للمحاولة).
تحدد العبارة catch
كتلة رمز للتعامل مع أي خطأ.
تحدد العبارة finally
كتلة التعليمات البرمجية ليتم تشغيلها بغض النظر عن النتيجة.
تحدد العبارة throw
خطأ مخصص.
كلاهما اختياري catch
، finally
ولكن يجب استخدام أحدهما.
ملحوظة
يتيح لك استخدام الرمي مع المحاولة والقبض التحكم في تدفق البرنامج وإنشاء رسائل خطأ مخصصة.
أنظر أيضا:
بناء الجملة
try {
tryCode - Code block to run
}
catch(err) {
catchCode -
Code block to handle errors
}
finally {
finallyCode - Code block to be executed regardless of the try result
}
المعلمات
Parameter | Description |
tryCode | Required. Code block to be tested while executing. |
err | A local reference to the error object. |
catchCode | Optional. Code block to execute if an error occurs. |
finallyCode | Optional. Code block to execute regardless of the try result |
مزيد من الأمثلة
يفحص هذا المثال المدخلات.
إذا كانت القيمة خاطئة ، يتم طرح استثناء (يخطئ):
<p>Please input a number between
5 and 10:</p>
<input id="demo" type="text">
<button type="button"
onclick="myFunction()">Test Input</button>
<p id="message"></p>
<script>
function myFunction() {
const message =
document.getElementById("message");
message.innerHTML = "";
let 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>
تقوم العبارة النهائية بتنفيذ الكود ، بغض النظر عن نتيجة المحاولة:
function myFunction()
const message =
document.getElementById("message");
message.innerHTML = "";
let 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 = "Error: " +
err + ".";
}
finally {
document.getElementById("demo").value = "";
}
}
دعم المتصفح
try...catch
هي إحدى ميزات ECMAScript3 (ES3).
ES3 (JavaScript 1999) مدعوم بالكامل في جميع المتصفحات:
Chrome | IE | Edge | Firefox | Safari | Opera |
Yes | Yes | Yes | Yes | Yes | Yes |