มีแหล่งข้อผิดพลาดมากมาย ตัวอย่างเช่น syntax error ในคำสั่ง SQL ที่รัน, connection failure, หรือการเรียก fetch method สำหรับ statement handle ที่ยกเลิกหรือจบแล้ว
DB API กำหนดข้อผิดพลาดหลายประเภทที่ต้องมีในทุก database module ตารางด้านล่างแสดง exception ต่างๆ:
| ลำดับ | Exception & Description |
|---|---|
| 1 | Warning ใช้สำหรับปัญหาที่ไม่ร้ายแรง ต้อง subclass StandardError |
| 2 | Error คลาสฐานสำหรับข้อผิดพลาด ต้อง subclass StandardError |
| 3 | InterfaceError ใช้สำหรับข้อผิดพลาดใน database module ไม่ใช่ database เอง ต้อง subclass Error |
| 4 | DatabaseError ใช้สำหรับข้อผิดพลาดใน database ต้อง subclass Error |
| 5 | DataError Subclass ของ DatabaseError อ้างถึงข้อผิดพลาดในข้อมูล |
| 6 | OperationalError Subclass ของ DatabaseError อ้างถึงข้อผิดพลาดเช่นการสูญเสียการเชื่อมต่อ database ข้อผิดพลาดเหล่านี้มักอยู่นอกเหนือจากการควบคุมของ Python scripter |
| 7 | IntegrityError Subclass ของ DatabaseError สำหรับสถานการณ์ที่จะทำลายความสมบูรณ์เชิงสัมพันธ์ เช่น uniqueness constraints หรือ foreign keys |
| 8 | InternalError Subclass ของ DatabaseError อ้างถึงข้อผิดพลาดภายใน database module เช่น cursor ไม่ active แล้ว |
| 9 | ProgrammingError Subclass ของ DatabaseError อ้างถึงข้อผิดพลาดเช่นชื่อตารางผิด และสิ่งอื่นๆ ที่สามารถ đổความผิดให้คุณได้ |
| 10 | NotSupportedError Subclass ของ DatabaseError อ้างถึงการพยายามเรียกฟังก์ชันที่ไม่รองรับ |
สคริปต์ Python ของคุณควรจัดการข้อผิดพลาดเหล่านี้ แต่ก่อนใช้ exception ใดๆ ข้างต้น ตรวจสอบว่า MySQLdb รองรับ exception นั้นหรือไม่ สามารถอ่านข้อมูลเพิ่มเติมได้จาก DB API 2.0 specification