Η PHP έχει δύο παράλληλα συστήματα για προβλήματα: παραδοσιακά σφάλματα (warnings, notices, fatal errors) και εξαιρέσεις (object-based, catchable με try/catch). Η σύγχρονη PHP ενοποιεί πολλά από αυτά στην ιεραρχία Throwable, και η καλή πρακτική ευνοεί τις εξαιρέσεις.
Παραδοσιακά επίπεδα σφαλμάτων
E_NOTICE → minor issues (e.g. using an undefined variable) — script continues
E_WARNING → non-fatal problems (e.g. include of a missing file) — continues
E_ERROR / Fatal → serious errors (e.g. calling an undefined function) — script HALTS
E_DEPRECATED → use of deprecated features
