PHP ka dy sisteme paralele për problemet: gabimet tradicionale (paralajmërime, noticat, gabimet fatale) dhe përjashtimet (të bazuara në objekte, të kapshme me try/catch). PHP-ja moderne unifikoi shumë nga kjo nën hierarkinë Throwable, dhe praktika e mirë preferon përjashtimet.
Nivelet tradicionale të gabimeve
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
