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(). يمنع هذا النهج البرنامج النصي بالكامل من التوقف عند حدوث خطأ ما، مما يمنحك التحكم في كيفية التعامل مع الأخطاء وما يراه المستخدمون.

challenge icon

التحدي

سهل

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

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

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

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

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

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

جرّب بنفسك

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

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


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

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

جميع دروس Logic & Flow