Có nhiều nguồn gốc của lỗi. Một vài ví dụ là lỗi cú pháp trong câu lệnh SQL thực thi, lỗi kết nối, hoặc gọi phương thức fetch cho một câu lệnh đã hủy hoặc kết thúc.
DB API định nghĩa một số lỗi phải tồn tại trong mỗi mô-đun cơ sở dữ liệu. Bảng sau liệt kê các ngoại lệ này.
| STT | Ngoại lệ & Mô tả |
|---|---|
| 1 | Warning Dùng cho các vấn đề không nghiêm trọng. Phải kế thừa từ StandardError. |
| 2 | Error Lớp cơ sở cho lỗi. Phải kế thừa từ StandardError. |
| 3 | InterfaceError Dùng cho lỗi trong mô-đun cơ sở dữ liệu, không phải cơ sở dữ liệu bản thân. Phải kế thừa từ Error. |
| 4 | DatabaseError Dùng cho lỗi trong cơ sở dữ liệu. Phải kế thừa từ Error. |
| 5 | DataError Lớp con của DatabaseError liên quan đến lỗi trong dữ liệu. |
| 6 | OperationalError Lớp con của DatabaseError liên quan đến lỗi như mất kết nối đến cơ sở dữ liệu. Các lỗi này thường nằm ngoài sự kiểm soát của người lập trình Python. |
| 7 | IntegrityError Lớp con của DatabaseError cho các tình huống làm hỏng tính toàn vẹn quan hệ, như ràng buộc duy nhất hoặc khóa ngoại. |
| 8 | InternalError Lớp con của DatabaseError liên quan đến lỗi nội bộ mô-đun cơ sở dữ liệu, như con trỏ không còn hoạt động. |
| 9 | ProgrammingError Lớp con của DatabaseError liên quan đến lỗi như tên bảng sai và các thứ khác có thể đổ lỗi cho bạn. |
| 10 | NotSupportedError Lớp con của DatabaseError liên quan đến việc cố gọi chức năng không được hỗ trợ. |
Các script Python của bạn nên xử lý các lỗi này, nhưng trước khi sử dụng bất kỳ ngoại lệ nào ở trên, hãy đảm bảo MySQLdb của bạn hỗ trợ ngoại lệ đó. Bạn có thể tìm thêm thông tin bằng cách đọc đặc tả DB API 2.0.