PHP có hai hệ thống song song cho vấn đề: error truyền thống (warning, notice, fatal error) và exception (dựa trên object, bắt được bằng try/catch). PHP hiện đại hợp nhất phần lớn dưới một hệ phân cấp Throwable, và thực hành tốt ưu tiên exception.
Các mức error truyền thống
E_NOTICE → vấn đề nhỏ (ví dụ dùng biến chưa định nghĩa) — script tiếp tục
E_WARNING → vấn đề không nghiêm trọng (ví dụ include một file thiếu) — tiếp tục
E_ERROR / Fatal → lỗi nghiêm trọng (ví dụ gọi một hàm chưa định nghĩa) — script DỪNG
E_DEPRECATED → dùng tính năng đã lỗi thời
