ما استثناء القيمة خارج النطاق في PHP؟ (DomainException)

سهلقراءة دقيقةآخر تحديث 1 أكتوبر 2026

PHP

الإجابة

عندما تكون القيمة خارج نطاقها المسموح، مثل خصم أقل من 0% أو أكثر من 100%، يناسبها DomainException:

function applyDiscount(float $price, float $percent): float {
    if ($percent < 0 || $percent > 100) {
        throw new DomainException('Discount must be between 0 and 100');
    }
    return $price * (1 - $percent / 100);
}

عائلة الاستثناءات

  • LogicException: الأب العام لأخطاء المنطق في البرنامج.
  • DomainException: نوع منه، لقيمة لا تنتمي إلى المجال المقبول.
  • InvalidArgumentException: معامل من نوع أو شكل خاطئ.
  • RuntimeException: أخطاء لا تُعرف إلا أثناء التشغيل، مثل فشل قراءة ملف.

اختيار الاستثناء الأدق يجعل الكود أوضح، ويسمح بالتقاط كل نوع بطريقة مختلفة.

اختبر فهمك

في تطبيق ما يُضاف خصم بالنسبة المئوية (مثل 20%). إذا كانت قيمة الخصم أقل من 0 أو أكبر من 100 فهذا خطأ. أي استثناء هو الأنسب لهذه الحالة؟