Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

كتلة 'try...catch'

جزء من قسم Logic & Flow في رحلة PHP على Coddy — الدرس 53 من 68.

عندما يواجه كود PHP الخاص بك مشكلات قد تتسبب في توقفه عن العمل، فأنت بحاجة إلى طريقة للتعامل مع هذه المواقف بسلاسة. توفر كتلة try...catch نهجاً منظماً للتعامل مع الاستثناءات (exceptions) - وهي كائنات خطأ خاصة تمثل مشكلات خطيرة في الكود الخاص بك.

تحتوي كتلة try على كود قد يفشل أو يطرح استثناءً. إذا حدث استثناء داخل هذه الكتلة، يتوقف PHP فوراً عن تنفيذ الكود المتبقي في كتلة try وينتقل إلى كتلة catch المقابلة. تقوم كتلة catch بمعالجة الاستثناء، مما يسمح للسكربت الخاص بك بمواصلة التشغيل بدلاً من الانهيار.

<?php
try {
    // الكود الذي قد يطرح استثناءً
    $result = riskyFunction();
    echo "Success!";
} catch (Exception $e) {
    // معالجة الاستثناء
    echo "An error occurred: " . $e->getMessage();
}
?>

تستقبل كتلة catch كائن Exception يحتوي على معلومات حول الخطأ الذي حدث. يمكنك الوصول إلى رسالة الخطأ باستخدام طريقة getMessage(). يمنع هذا النهج البرنامج النصي بالكامل من التوقف عند حدوث خطأ ما، مما يمنحك التحكم في كيفية التعامل مع الأخطاء وما يراه المستخدمون.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

challenge icon

التحدي

سهل

ستتلقى مدخلاً واحداً: رقماً يمثل قيمة العمر. قد يكون المدخل رقماً سالباً، وهو ما سيكون غير صالح للعمر.

اقرأ المدخل، وقم بتحويله إلى عدد صحيح، وأنشئ كتلة try...catch. داخل كتلة try، تحقق مما إذا كان العمر سالباً. إذا كان سالباً، قم برمي Exception جديد مع الرسالة "Age cannot be negative". إذا كان العمر صالحاً (صفراً أو موجباً)، قم بطباعة "Valid age: " متبوعاً بقيمة العمر.

في كتلة catch، قم بمعالجة الاستثناء عن طريق طباعة "Error: " متبوعة برسالة الاستثناء باستخدام التابع getMessage().

تنسيق المدخلات: سطر واحد يحتوي على عدد صحيح (مثال: 25 أو -5)

المخرجات المتوقعة:

  • إذا كان العمر صالحاً: Valid age: متبوعاً بقيمة العمر
  • إذا كان العمر سالباً: Error: Age cannot be negative

ورقة مرجعية

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

البنية الأساسية:

<?php
try {
    // الكود الذي قد يطرح استثناءً
    $result = riskyFunction();
    echo "Success!";
} catch (Exception $e) {
    // التعامل مع الاستثناء
    echo "An error occurred: " . $e->getMessage();
}
?>

تحتوي كتلة try على كود قد يكون إشكالياً. في حال حدوث استثناء، ينتقل PHP إلى كتلة catch، التي تستقبل كائن Exception. استخدم getMessage() للوصول إلى رسالة الخطأ.

يمكنك طرح الاستثناءات يدوياً باستخدام:

throw new Exception("Custom error message");

جرّب بنفسك

<?php
// قراءة المدخلات
$age = intval(fgets(STDIN));

// TODO: اكتب كودك أدناه
// قم بإنشاء كتلة try...catch للتحقق من صحة العمر


?>
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Logic & Flow