A PHP-nek két párhuzamos rendszere van a problémák kezelésére: a hagyományos hibák (figyelmeztetések, értesítések, végzetes hibák) és a kivételek (objektum alapú, try/catch-vel elkapható). A modern PHP sok mindent egységesít a Throwable hierarchia alatt, és az ajánlott gyakorlat a kivételek használatát favorizálja.
Hagyományos hibaszintek
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
