عندما تكون القيمة خارج نطاقها المسموح، مثل خصم أقل من 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: أخطاء لا تُعرف إلا أثناء التشغيل، مثل فشل قراءة ملف.
اختيار الاستثناء الأدق يجعل الكود أوضح، ويسمح بالتقاط كل نوع بطريقة مختلفة.