सॉफ़्टवेयर विकास में, असामान्य निष्पादन घटनाओं को दो श्रेणियों में विभाजित किया गया है:
- सिंटैक्स त्रुटियां (पार्सिंग त्रुटियां): पायथन के औपचारिक व्याकरण का उल्लंघन (उदाहरण के लिए, लापता कोलन, बेमेल कोष्ठक, अमान्य इंडेंटेशन)। प्रोग्राम निष्पादन से *पहले* टोकननाइज़र/पार्सर द्वारा पकड़ा गया। निष्पादन तब तक शुरू नहीं हो सकता जब तक कि सभी सिंटैक्स त्रुटियाँ हल नहीं हो जातीं।
- अपवाद (रनटाइम त्रुटियाँ): विघटनकारी घटनाएँ जो प्रोग्राम निष्पादन के दौरान *घटित होती हैं जब वाक्यात्मक रूप से मान्य कोड एक अवैध ऑपरेशन का प्रयास करता है (उदाहरण के लिए, शून्य से विभाजित करना, एक गैर-मौजूद फ़ाइल को खोलना, एक खाली सूची को अनुक्रमित करना)। यदि अपवाद हैंडलर द्वारा नहीं पकड़ा जाता है, तो पायथन दुभाषिया निष्पादन रोक देता है और डायग्नोस्टिक Traceback. प्रिंट करता है
पायथन अंतर्निहित अपवाद पदानुक्रम
सभी पायथन अपवाद BaseException:
बेसएक्सेप्शन
├── SystemExit (sys.exit() द्वारा ट्रिगर)
├──कीबोर्डइंटरप्ट (टर्मिनल में Ctrl+C द्वारा ट्रिगर)
└── अपवाद (सभी गैर-घातक एप्लिकेशन अपवादों के लिए रूट सुपरक्लास)
├── अंकगणित त्रुटि
│ ├── ZeroDivisionError (जैसे, 10/0)
│ └── अतिप्रवाह त्रुटि (गणना फ़्लोटिंग-पॉइंट सीमा से अधिक है)
├── लुकअप एरर
│ ├── IndexError (अनुक्रम सूचकांक सीमा से बाहर)
│ └── कुंजी त्रुटि (शब्दकोश कुंजी नहीं मिली)
├── वैल्यूएरर (सही प्रकार, लेकिन अमान्य मान, उदाहरण के लिए, int("abc"))
├── लेखन त्रुटि (ऑपरेशन अनुपयुक्त डेटा प्रकार पर लागू)
├── NameError (पहचानकर्ता किसी भी LEGB दायरे में नहीं मिला)
└── OSError
├── FileNotFoundError (फ़ाइल पथ मौजूद नहीं है)
└── PermissionError (अपर्याप्त OS फ़ाइल एक्सेस अधिकार)