มีหลายแหล่งที่มาของข้อผิดพลาด ตัวอย่างบางส่วน ได้แก่ ข้อผิดพลาดทางไวยากรณ์ในคำสั่ง SQL ที่ดำเนินการ การเชื่อมต่อล้มเหลว หรือการเรียกวิธีการดึงข้อมูลสำหรับการจัดการคำสั่งที่ยกเลิกหรือเสร็จสิ้นแล้ว
DB API กำหนดจำนวนข้อผิดพลาดที่ต้องมีอยู่ในแต่ละโมดูลฐานข้อมูล ตารางต่อไปนี้แสดงรายการข้อยกเว้นเหล่านี้
ซีเนียร์ | ข้อยกเว้นและคำอธิบาย |
---|---|
1 | คำเตือน ใช้สำหรับปัญหาที่ไม่ร้ายแรง ต้องคลาสย่อย StandardError |
2 | ข้อผิดพลาด คลาสพื้นฐานสำหรับข้อผิดพลาด ต้องคลาสย่อย StandardError |
3 | InterfaceError ใช้สำหรับข้อผิดพลาดในโมดูลฐานข้อมูล ไม่ใช่ตัวฐานข้อมูลเอง ต้องเกิดข้อผิดพลาดของคลาสย่อย |
4 | ข้อผิดพลาดของฐานข้อมูล ใช้สำหรับข้อผิดพลาดในฐานข้อมูล ต้องเกิดข้อผิดพลาดของคลาสย่อย |
5 | ข้อผิดพลาดของข้อมูล คลาสย่อยของ DatabaseError ที่อ้างถึงข้อผิดพลาดในข้อมูล |
6 | OperationalError คลาสย่อยของ DatabaseError ที่อ้างถึงข้อผิดพลาด เช่น ขาดการเชื่อมต่อกับฐานข้อมูล ข้อผิดพลาดเหล่านี้มักอยู่นอกเหนือการควบคุมของ Python scripter |
7 | IntegrityError คลาสย่อยของ DatabaseError สำหรับสถานการณ์ที่อาจสร้างความเสียหายต่อความสมบูรณ์ของความสัมพันธ์ เช่น ข้อจำกัดเฉพาะหรือคีย์ภายนอก |
8 | InternalError คลาสย่อยของ DatabaseError ที่อ้างถึงข้อผิดพลาดภายในโมดูลฐานข้อมูล เช่น เคอร์เซอร์ไม่ทำงานอีกต่อไป |
9 | ข้อผิดพลาดในการเขียนโปรแกรม คลาสย่อยของ DatabaseError ที่อ้างถึงข้อผิดพลาด เช่น ชื่อตารางที่ไม่ถูกต้อง และสิ่งอื่น ๆ ที่สามารถตำหนิคุณได้อย่างปลอดภัย |
10 | ไม่รองรับข้อผิดพลาด คลาสย่อยของ DatabaseError ที่อ้างถึงการพยายามเรียกใช้ฟังก์ชันที่ไม่รองรับ |
สคริปต์ Python ของคุณควรจัดการกับข้อผิดพลาดเหล่านี้ แต่ก่อนที่จะใช้ข้อยกเว้นใดๆ ข้างต้น ตรวจสอบให้แน่ใจว่า MySQLdb ของคุณรองรับข้อยกเว้นนั้น คุณสามารถรับข้อมูลเพิ่มเติมเกี่ยวกับสิ่งเหล่านี้ได้โดยการอ่านข้อกำหนด DB API 2.0