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

إنشاء استثناء مخصص

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

بينما تعمل فئة Exception المدمجة في PHP بشكل جيد لمعالجة الأخطاء العامة، فإن إنشاء فئات استثناءات مخصصة خاصة بك يوفر رسائل خطأ أكثر تحديداً ومعنى. تساعدك الاستثناءات المخصصة على التمييز بين أنواع المشكلات المختلفة في التعليمات البرمجية الخاصة بك ومعالجتها بشكل مناسب.

لإنشاء استثناء مخصص، يمكنك توسيع فئة Exception الأساسية في PHP باستخدام الكلمة المفتاحية extends. يمنح هذا التوريث استثناءك المخصص جميع وظائف الاستثناء القياسي مع السماح لك بإضافة سلوكك الخاص أو ببساطة توفير اسم أكثر وصفاً.

<?php
class InvalidEmailException extends Exception {
    // يمكن أن يكون الكلاس فارغاً - فهو يرث كل شيء من Exception
}

// يمكنك أيضاً إضافة خصائص أو دوال مخصصة
class CustomException extends Exception {
    public function getCustomMessage() {
        return "Custom error: " . $this->getMessage();
    }
}
?>

تكمن قوة الاستثناءات المخصصة في أسمائها الوصفية والقدرة على التقاط أنواع استثناءات محددة. فبدلاً من التقاط Exception عام، يمكنك التقاط InvalidEmailException، أو DatabaseConnectionException، أو أي استثناء مخصص آخر تقوم بإنشائه. وهذا يجعل معالجة الأخطاء لديك أكثر دقة وكودك أكثر قابلية للصيانة.

quiz iconاختبر نفسك

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

quiz iconاختبر نفسك

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

quiz iconاختبر نفسك

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

challenge icon

التحدي

سهل

ستتلقى مدخلاً واحداً: سلسلة نصية تمثل اسم فئة استثناء (exception class). سيكون هذا المدخل كلمة واحدة يجب استخدامها كاسم لفئة الاستثناء المخصصة الخاصة بك (مثال: NegativeBalanceException أو InvalidUsernameException).

اقرأ المدخل وقم بإنشاء فئة استثناء مخصصة باستخدام الاسم المقدم. يجب أن ترث فئة الاستثناء المخصصة الخاصة بك من فئة Exception الأساسية في PHP. بعد إنشاء الفئة، اطبع "Custom exception created: " متبوعاً باسم الفئة الذي تلقيته كمدخل.

تنسيق المدخلات: سطر واحد يحتوي على سلسلة نصية تمثل اسم فئة الاستثناء (مثال: InvalidAgeException)

المخرجات المتوقعة: Custom exception created: متبوعاً باسم فئة الاستثناء

ورقة مرجعية

لإنشاء استثناءات مخصصة في PHP، قم بتوسيع فئة Exception الأساسية باستخدام الكلمة المفتاحية extends:

<?php
class InvalidEmailException extends Exception {
    // يمكن أن تكون الفئة فارغة - فهي ترث كل شيء من Exception
}

// يمكنك أيضًا إضافة خصائص أو طرق مخصصة
class CustomException extends Exception {
    public function getCustomMessage() {
        return "Custom error: " . $this->getMessage();
    }
}
?>

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

جرّب بنفسك

<?php
// قراءة اسم فئة الاستثناء
$className = trim(fgets(STDIN));

// TODO: اكتب الكود الخاص بك أدناه لإنشاء فئة استثناء مخصصة


// عرض النتيجة
echo "Custom exception created: " . $className;
?>
quiz iconاختبر نفسك

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

جميع دروس Logic & Flow