त्रुटियों के कई स्रोत हैं। कुछ उदाहरण हैं एक निष्पादित SQL स्टेटमेंट में सिंटैक्स त्रुटि, एक कनेक्शन विफलता, या एक पहले से रद्द या समाप्त स्टेटमेंट हैंडल के लिए fetch विधि को कॉल करना।
DB API कई त्रुटियों को परिभाषित करता है जो प्रत्येक डेटाबेस मॉड्यूल में मौजूद होनी चाहिए। निम्न तालिका इन अपवादों को सूचीबद्ध करती है।
| क्रमांक | अपवाद और विवरण |
|---|---|
| 1 | Warning गैर-घातक मुद्दों के लिए उपयोग किया जाता है। StandardError का सबक्लास होना चाहिए। |
| 2 | Error त्रुटियों के लिए बेस क्लास। StandardError का सबक्लास होना चाहिए। |
| 3 | InterfaceError डेटाबेस मॉड्यूल में त्रुटियों के लिए उपयोग किया जाता है, डेटाबेस में नहीं। Error का सबक्लास होना चाहिए। |
| 4 | DatabaseError डेटाबेस में त्रुटियों के लिए उपयोग किया जाता है। Error का सबक्लास होना चाहिए। |
| 5 | DataError DatabaseError का सबक्लास जो डेटा में त्रुटियों को संदर्भित करता है। |
| 6 | OperationalError DatabaseError का सबक्लास जो डेटाबेस से कनेक्शन खोने जैसी त्रुटियों को संदर्भित करता है। ये त्रुटियां आमतौर पर पायथन स्क्रिप्टर के नियंत्रण से बाहर होती हैं। |
| 7 | IntegrityError DatabaseError का सबक्लास उन स्थितियों के लिए जो रिलेशनल अखंडता को नुकसान पहुंचाएंगी, जैसे विशिष्टता बाधाएं या विदेशी कुंजियाँ। |
| 8 | InternalError DatabaseError का सबक्लास जो डेटाबेस मॉड्यूल के आंतरिक त्रुटियों को संदर्भित करता है, जैसे कर्सर का अब सक्रिय न होना। |
| 9 | ProgrammingError DatabaseError का सबक्लास जो खराब टेबल नाम जैसी त्रुटियों को संदर्भित करता है और अन्य चीजें जिनके लिए आप सुरक्षित रूप से दोषी ठहरा सकते हैं। |
| 10 | NotSupportedError DatabaseError का सबक्लास जो असमर्थित कार्यक्षमता को कॉल करने की कोशिश को संदर्भित करता है। |
आपके पायथन स्क्रिप्ट्स को इन त्रुटियों को संभालना चाहिए, लेकिन उपरोक्त किसी भी अपवाद का उपयोग करने से पहले, सुनिश्चित करें कि आपके MySQLdb में उस अपवाद के लिए समर्थन है। आप DB API 2.0 विनिर्देश पढ़कर उनके बारे में अधिक जानकारी प्राप्त कर सकते हैं।