Python 3.7 - Exceptions

अंतर्निहित अपवाद




python

अंतर्निहित अपवाद

पायथन में, सभी अपवादों को एक वर्ग का उदाहरण होना चाहिए, जो BaseException से BaseException । एक except खंड के साथ एक try बयान में जो एक विशेष वर्ग का उल्लेख करता है, वह खंड उस वर्ग से व्युत्पन्न किसी भी अपवाद वर्गों को संभालता है (लेकिन अपवाद वर्ग नहीं है जिससे वह प्राप्त होता है)। दो अपवाद कक्षाएं जो उपवर्ग के माध्यम से संबंधित नहीं हैं, वे कभी भी समान नहीं हैं, भले ही उनका नाम एक ही हो।

नीचे सूचीबद्ध अपवाद दुभाषिया या अंतर्निहित कार्यों द्वारा उत्पन्न किया जा सकता है। जहां उल्लेख किया गया है, को छोड़कर, उनके पास "संबद्ध मूल्य" है जो त्रुटि के विस्तृत कारण को दर्शाता है। यह सूचना के कई मदों की एक स्ट्रिंग या टपल हो सकता है (जैसे, एक त्रुटि कोड और कोड को समझाने वाला एक स्ट्रिंग)। संबद्ध मूल्य आमतौर पर अपवाद वर्ग के निर्माता के तर्क के रूप में पारित किया जाता है।

उपयोगकर्ता कोड अंतर्निहित अपवाद उठा सकता है। इसका उपयोग एक अपवाद हैंडलर का परीक्षण करने या "स्थिति की तरह" एक त्रुटि स्थिति की रिपोर्ट करने के लिए किया जा सकता है जिसमें दुभाषिया उसी अपवाद को उठाता है; लेकिन सावधान रहें कि उपयोगकर्ता कोड को अनुचित त्रुटि बढ़ाने से रोकने के लिए कुछ भी नहीं है।

नए अपवादों को परिभाषित करने के लिए अंतर्निहित अपवाद वर्ग को उपवर्गित किया जा सकता है; प्रोग्रामर को Exception वर्ग या उसके एक उपवर्ग से नए अपवाद प्राप्त करने के लिए प्रोत्साहित किया जाता है, और BaseException से नहीं। अपवाद परिभाषित करने की अधिक जानकारी उपयोगकर्ता द्वारा परिभाषित अपवादों के तहत पायथन ट्यूटोरियल में उपलब्ध है।

एक अपवाद को except या finally में एक अपवाद (या फिर से उठाना) __context__ स्वचालित रूप से पकड़े गए अंतिम अपवाद पर सेट हो जाता है; यदि नया अपवाद ट्रेसबैक को संभाला नहीं जाता है जो अंततः प्रदर्शित होता है, तो मूल अपवाद (एस) और अंतिम अपवाद शामिल होगा।

एक नया अपवाद raise समय (वर्तमान में नियंत्रित किए जा रहे अपवाद को फिर से बढ़ाने के लिए एक नंगे उठान का उपयोग करने के बजाय), अंतर्निहित अपवाद संदर्भ को raise उपयोग करके एक स्पष्ट कारण के साथ पूरक किया जा सकता है:

raise new_exc from original_exc

निम्नलिखित में from अभिव्यक्ति एक अपवाद या None होनी चाहिए। इसे उठाए गए अपवाद पर __cause__ रूप में सेट किया जाएगा। __cause__ सेट करना भी स्पष्ट रूप से __suppress_context__ विशेषता को True सेट करता है, ताकि raise new_exc from None का उपयोग करने raise new_exc from None प्रभावी रूप से पुराने अपवाद को प्रदर्शन उद्देश्यों के लिए नए के साथ प्रतिस्थापित न किया जाए (जैसे KeyError को AttributeError परिवर्तित करना, जबकि डिबगिंग के लिए __context__ में उपलब्ध पुराने अपवाद को __context__

डिफ़ॉल्ट ट्रेसबैक प्रदर्शन कोड अपवाद के लिए ट्रेसबैक के अलावा इन जंजीर अपवादों को दिखाता है। __cause__ में एक स्पष्ट रूप से जंजीर अपवाद हमेशा मौजूद होने पर दिखाया जाता है। __context__ में एक अंतर्निहित जंजीर अपवाद केवल तभी दिखाया गया है जब __cause__ None और __suppress_context__ गलत है।

या तो मामले में, अपवाद हमेशा किसी भी जंजीर अपवादों के बाद दिखाया जाता है ताकि ट्रेसबैक की अंतिम पंक्ति हमेशा उस अंतिम अपवाद को दर्शाए जो उठाया गया था।

आधार वर्ग

निम्नलिखित अपवादों को ज्यादातर अन्य अपवादों के लिए आधार वर्गों के रूप में उपयोग किया जाता है।

exception BaseException

सभी अंतर्निहित अपवादों के लिए आधार वर्ग। इसका सीधा मतलब उपयोगकर्ता द्वारा परिभाषित वर्गों (इसके लिए, Exception उपयोग करना) से विरासत में मिला नहीं है। यदि इस वर्ग के उदाहरण पर str() कहा जाता है, तो उदाहरण के लिए तर्क (s) का प्रतिनिधित्व लौटाया जाता है, या कोई तर्क न होने पर रिक्त स्ट्रिंग।

args

अपवाद कंस्ट्रक्टर को दिए गए तर्कों का आधार। कुछ अंतर्निहित अपवाद (जैसे OSError ) एक निश्चित संख्या में तर्कों की अपेक्षा करते हैं और इस टपल के तत्वों के लिए एक विशेष अर्थ प्रदान करते हैं, जबकि अन्य को आमतौर पर केवल एक एकल स्ट्रिंग के साथ कहा जाता है जो एक त्रुटि संदेश देता है।

with_traceback(tb)

यह विधि अपवाद के लिए tb को नए ट्रेसबैक के रूप में सेट करती है और अपवाद ऑब्जेक्ट को लौटाती है। यह आमतौर पर अपवाद हैंडलिंग कोड में इस तरह से उपयोग किया जाता है:

try:
    ...
except SomeException:
    tb = sys.exc_info()[2]
    raise OtherException(...).with_traceback(tb)
exception Exception

सभी अंतर्निहित, गैर-सिस्टम-एक्साइटिंग अपवाद इस वर्ग से प्राप्त होते हैं। सभी उपयोगकर्ता-परिभाषित अपवाद भी इसी वर्ग से प्राप्त होने चाहिए।

exception ArithmeticError

उन अंतर्निहित अपवादों के लिए आधार वर्ग जो विभिन्न अंकगणितीय त्रुटियों के लिए उठाए गए हैं: ZeroDivisionError , ZeroDivisionError , FloatingPointError

exception BufferError

उठाया जब एक buffer संबंधित ऑपरेशन नहीं किया जा सकता है।

exception LookupError

अपवादों के लिए आधार वर्ग जो एक मैपिंग या अनुक्रम पर उपयोग की जाने वाली कुंजी या सूचकांक अमान्य है: IndexError , KeyError । इसे सीधे codecs.lookup() द्वारा उठाया जा सकता है।

ठोस अपवाद

निम्नलिखित अपवाद अपवाद हैं जो आमतौर पर उठाए जाते हैं।

exception AssertionError

जब एक assert कथन विफल हो जाता है तो उठाया।

exception AttributeError

उठाया जब एक विशेषता संदर्भ (संदर्भों को देखें) या असाइनमेंट विफल रहता है। (जब कोई ऑब्जेक्ट विशेषता संदर्भों या विशेषता असाइनमेंट का समर्थन नहीं करता है, तो TypeError उठाया जाता है।)

exception EOFError

उठाया जब input() फ़ंक्शन किसी भी डेटा को पढ़े बिना एंड-ऑफ-द-फ़ाइल स्थिति (ईओएफ) को हिट करता है। (NB: io.IOBase.read() और io.IOBase.readline() विधियाँ io.IOBase.readline() हिट करने पर एक रिक्त स्ट्रिंग io.IOBase.readline()

exception FloatingPointError

वर्तमान में उपयोग नहीं किया गया।

exception GeneratorExit

एक generator या coroutine बंद होने पर उठाया; generator.close() देखें। coroutine.close() और coroutine.close() coroutine.close() । यह प्रत्यक्ष रूप से Exception बजाय BaseException से विरासत में मिला है क्योंकि यह तकनीकी रूप से त्रुटि नहीं है।

exception ImportError

उठाया जब import विवरण में मॉड्यूल लोड करने के लिए परेशानियां हैं। जब "सूची में from ... import " से उठाया from ... import में एक ऐसा नाम है जिसे नहीं पाया जा सकता है।

name और path विशेषताओं को केवल कंस्ट्रक्टर के लिए कीवर्ड-तर्कों का उपयोग करके सेट किया जा सकता है। जब सेट किया जाता है तो वे उस मॉड्यूल के नाम का प्रतिनिधित्व करते हैं जिसे आयात करने का प्रयास किया गया था और क्रमशः अपवाद को ट्रिगर करने वाली किसी भी फ़ाइल के लिए पथ।

संस्करण 3.3 में परिवर्तित: name और path विशेषताएँ जोड़ी गईं।

exception ModuleNotFoundError

ImportError का एक उपवर्ग जो import द्वारा उठाया जाता है जब एक मॉड्यूल स्थित नहीं हो सकता है। यह तब भी उठाया जाता है जब None भी sys.modules में None पाया जाता है।

संस्करण 3.6 में नया।

exception IndexError

जब एक अनुक्रम सबस्क्रिप्ट सीमा से बाहर है, तो उठाया गया। (स्लाइस इंडिकेशन्स को अनुमति सीमा में गिरने के लिए चुपचाप काट दिया जाता है; यदि कोई इंडेक्स पूर्णांक नहीं है, तो TypeError उठाया जाता है।)

exception KeyError

मौजूदा कुंजियों के सेट में मैपिंग (शब्दकोश) कुंजी नहीं मिलने पर उठाया।

exception KeyboardInterrupt

उठाया जब उपयोगकर्ता बाधा कुंजी (सामान्य रूप से Control-C या Delete ) को हिट करता है। निष्पादन के दौरान, इंटरप्ट के लिए एक चेक नियमित रूप से बनाया जाता है। अपवाद BaseException से इनहेरिट BaseException ताकि गलती से कोड द्वारा पकड़ा न जाए जो Exception पकड़ता है और इस प्रकार दुभाषिया को बाहर निकलने से रोकता है।

exception MemoryError

उठाया जब एक ऑपरेशन स्मृति से बाहर चलाता है लेकिन स्थिति अभी भी बचाया जा सकता है (कुछ वस्तुओं को हटाकर)। संबंधित मूल्य एक स्ट्रिंग है जो दर्शाता है कि किस प्रकार का (आंतरिक) ऑपरेशन मेमोरी से बाहर चला गया है। ध्यान दें कि अंतर्निहित मेमोरी मैनेजमेंट आर्किटेक्चर (सी के malloc() फ़ंक्शन) के कारण, दुभाषिया हमेशा इस स्थिति से पूरी तरह से उबरने में सक्षम नहीं हो सकता है; फिर भी यह एक अपवाद को बढ़ाता है ताकि एक स्टैक ट्रेसबैक मुद्रित किया जा सके, यदि एक रन-ऑफ प्रोग्राम इसका कारण था।

exception NameError

उठाया जब एक स्थानीय या वैश्विक नाम नहीं मिला। यह केवल अयोग्य नामों पर लागू होता है। संबद्ध मूल्य एक त्रुटि संदेश है जिसमें वह नाम शामिल है जो नहीं पाया जा सकता है।

exception NotImplementedError

यह अपवाद RuntimeError से लिया गया है। उपयोगकर्ता परिभाषित आधार वर्गों में, अमूर्त विधियों को इस अपवाद को उठाना चाहिए जब उन्हें विधि को ओवरराइड करने के लिए व्युत्पन्न वर्गों की आवश्यकता होती है, या जबकि कक्षा को यह इंगित करने के लिए विकसित किया जा रहा है कि वास्तविक कार्यान्वयन को अभी भी जोड़ने की आवश्यकता है।

ध्यान दें

यह इंगित करने के लिए उपयोग नहीं किया जाना चाहिए कि किसी ऑपरेटर या विधि का समर्थन करने के लिए बिल्कुल भी नहीं है - उस स्थिति में या तो ऑपरेटर / विधि को अपरिभाषित छोड़ दें या, यदि एक उपवर्ग, इसे None सेट न करें।

ध्यान दें

NotImplementedError और NotImplemented , समान नाम और उद्देश्य होने के बावजूद विनिमेय नहीं हैं। इसका उपयोग कब करना है, इसके विवरण के लिए NotImplemented देखें।

exception OSError([arg])
exception OSError(errno, strerror[, filename[, winerror[, filename2]]])

यह अपवाद तब उठाया जाता है जब कोई सिस्टम फ़ंक्शन सिस्टम-संबंधी त्रुटि देता है, जिसमें I / O विफलताओं जैसे कि "फ़ाइल नहीं मिली" या "डिस्क पूर्ण" (अवैध तर्क प्रकार या अन्य आकस्मिक त्रुटियों के लिए नहीं)।

कंस्ट्रक्टर का दूसरा रूप नीचे वर्णित के अनुसार संबंधित विशेषताओं को निर्धारित करता है। यदि निर्दिष्ट None तो विशेषताएँ None लिए None डिफ़ॉल्ट हैं। पश्चगामी संगतता के लिए, यदि तीन तर्क पारित किए जाते हैं, तो args विशेषता में पहले दो कंस्ट्रक्टर तर्कों का केवल 2-टपल शामिल होता है।

निर्माता अक्सर OSError का एक उपवर्ग OSError , जैसा कि नीचे OS अपवादों में वर्णित है। विशेष उपवर्ग अंतिम errno मान पर निर्भर करता है। यह व्यवहार केवल तब होता है जब OSError निर्माण सीधे या किसी अन्य के माध्यम से होता है, और उप- OSError होने पर विरासत में नहीं मिलता है।

errno

C वैरिएबल errno से एक संख्यात्मक त्रुटि कोड।

winerror

विंडोज के तहत, यह आपको मूल विंडोज त्रुटि कोड देता है। errno विशेषता तब POSIX शब्दों में, उस मूल त्रुटि कोड का एक अनुमानित अनुवाद है।

विंडोज के तहत, अगर विनर कंस्ट्रक्टर तर्क एक पूर्णांक है, तो त्रुटिपूर्ण विशेषता को विंडोज त्रुटि कोड से निर्धारित किया जाता है, और गलत तर्क को नजरअंदाज किया जाता है। अन्य प्लेटफार्मों पर, विनर तर्क को नजरअंदाज कर दिया जाता है, और winerror विशेषता मौजूद नहीं है।

strerror

ऑपरेटिंग सिस्टम द्वारा प्रदान की गई संबंधित त्रुटि संदेश। यह POSIX के तहत C फ़ंक्शंस perror() और विंडोज के तहत FormatMessage() द्वारा स्वरूपित है।

filename
filename2

एक फ़ाइल सिस्टम पथ (जैसे कि open() या os.unlink() ) को शामिल करने वाले अपवादों के लिए, filename फ़ंक्शन को दिया गया फ़ाइल नाम है। फ़ंक्शन के लिए दो फ़ाइल सिस्टम पथ (जैसे os.rename() ) को शामिल करने के लिए, filename2 फ़ंक्शन को दिए गए दूसरे फ़ाइल नाम से मेल खाती है।

संस्करण 3.3 में परिवर्तित किया गया: EnvironmentError , IOError , IOError , socket.error , select.error और mmap.error को mmap.error में मर्ज कर दिया गया है, और कंस्ट्रक्टर एक OSError वापस कर सकता है।

संस्करण 3.4 में परिवर्तित: फ़ाइल नाम एन्कोडिंग से एन्कोडेड या डीकोड करने के बजाय filename विशेषता अब मूल फ़ाइल नाम है जो फ़ंक्शन को दिया गया है। इसके अलावा, filename2 निर्माता तर्क और विशेषता जोड़ा गया था।

exception OverflowError

उठाया जब एक अंकगणितीय ऑपरेशन का परिणाम प्रतिनिधित्व करने के लिए बहुत बड़ा है। यह पूर्णांकों के लिए नहीं हो सकता है (जो कि MemoryError को ऊपर उठाने की बजाय बढ़ा MemoryError )। हालाँकि, ऐतिहासिक कारणों के लिए, ओवरफ़्लोइयर को कभी-कभी पूर्णांक के लिए उठाया जाता है जो एक आवश्यक सीमा से बाहर हैं। C में फ्लोटिंग पॉइंट अपवाद हैंडलिंग के मानकीकरण की कमी के कारण, अधिकांश फ़्लोटिंग पॉइंट ऑपरेशन की जाँच नहीं की जाती है।

exception RecursionError

यह अपवाद RuntimeError से लिया गया है। यह तब उठाया जाता है जब दुभाषिया पता लगाता है कि अधिकतम पुनरावर्तन गहराई ( sys.getrecursionlimit() देखें) पार हो गई है।

संस्करण 3.5 में नया: इससे पहले, एक सादा RuntimeError उठाया गया था।

exception ReferenceError

यह अपवाद तब उठाया जाता है जब एक कमजोर संदर्भ प्रॉक्सी, जो कमजोर weakref.proxy() फ़ंक्शन द्वारा बनाई गई है, का उपयोग उस संदर्भ की विशेषता तक पहुंचने के लिए किया जाता है जब यह कचरा एकत्र किया गया हो। कमजोर संदर्भों के बारे में अधिक जानकारी के लिए, कमजोर मॉड्यूल देखें।

exception RuntimeError

उठाया जब एक त्रुटि का पता चला है जो अन्य श्रेणियों में से किसी में नहीं आती है। संबद्ध मूल्य एक स्ट्रिंग है जो दर्शाता है कि क्या गलत हुआ।

exception StopIteration

अंतर्निहित फ़ंक्शन next() और एक __next__() विधि से संकेत मिलता है कि __next__() द्वारा उत्पादित कोई और आइटम नहीं हैं।

अपवाद ऑब्जेक्ट का एकल गुण value , जो अपवाद का निर्माण करते समय एक तर्क के रूप में दिया जाता है, और None को None चूक None

जब एक generator या coroutine फ़ंक्शन वापस आता है, तो एक नया StopIteration उदाहरण उठाया जाता है, और फ़ंक्शन द्वारा लौटाए गए value को अपवाद के निर्माता के लिए value पैरामीटर के रूप में उपयोग किया जाता है।

यदि एक जनरेटर कोड सीधे या अप्रत्यक्ष रूप से StopIteration बढ़ाता है, तो इसे एक RuntimeError ( StopIteration को नए अपवाद के कारण के रूप में बनाए रखते हुए) में परिवर्तित कर दिया जाता है।

संस्करण 3.3 में बदला गया : एक मूल्य वापस करने के लिए इसका इस्तेमाल करने के लिए जोड़ा गया value विशेषता और जनरेटर कार्यों की क्षमता।

संस्करण 3.5 में परिवर्तित: from __future__ import generator_stop माध्यम from __future__ import generator_stop परिवर्तन प्रस्तुत किया, PEP 479 देखें।

संस्करण 3.7 में परिवर्तित: डिफ़ॉल्ट रूप से सभी कोड के लिए PEP 479 सक्षम करें: एक जनरेटर में उठाया गया StopIteration त्रुटि StopIteration में बदल जाती है।

exception StopAsyncIteration

पुनरावृत्ति को रोकने के लिए एक अतुल्यकालिक पुनरावृत्ति वस्तु का __anext__() विधि द्वारा उठाया जाना चाहिए।

संस्करण 3.5 में नया।

exception SyntaxError

जब पार्सर एक सिंटैक्स त्रुटि का सामना करता है, तो उठाया। यह एक import विवरण में, अंतर्निहित कार्य exec() या eval() , या प्रारंभिक स्क्रिप्ट या मानक इनपुट (भी अंतःक्रियात्मक रूप से) को पढ़ने के लिए कॉल में हो सकता है।

इस वर्ग के उदाहरणों में विवरणों तक आसान पहुँच के लिए filename , lineno , offset और text । अपवाद उदाहरण के str() केवल संदेश देता है।

exception IndentationError

गलत इंडेंटेशन से संबंधित सिंटैक्स त्रुटियों के लिए बेस क्लास। यह SyntaxError का एक उपवर्ग है।

exception TabError

उठाया जब इंडेंटेशन में टैब और रिक्त स्थान का असंगत उपयोग होता है। यह IndentationError का एक उपवर्ग है।

exception SystemError

उठाया जब दुभाषिया एक आंतरिक त्रुटि पाता है, लेकिन स्थिति इतनी गंभीर नहीं लगती है कि यह सभी आशाओं को छोड़ दे। संबद्ध मूल्य एक स्ट्रिंग है जो यह दर्शाता है कि क्या गलत हुआ (निम्न-स्तरीय शब्दों में)।

आपको अपने पाइथन इंटरप्रेटर के लेखक या अनुरक्षक को इसकी सूचना देनी चाहिए। पायथन दुभाषिया ( sys.version के संस्करण की रिपोर्ट करना सुनिश्चित करें, यह एक इंटरैक्टिव पायथन सत्र की शुरुआत में भी मुद्रित होता है), सटीक त्रुटि संदेश (अपवाद का संबद्ध मूल्य) और यदि संभव हो तो कार्यक्रम के स्रोत को ट्रिगर किया गया त्रुटि।

exception SystemExit

यह अपवाद sys.exit() फ़ंक्शन द्वारा उठाया गया है। यह Exception बजाय BaseException से इनहेरिट करता है ताकि यह गलती से उस कोड से न पकड़ा जाए जो Exception पकड़ता है। यह अपवाद को ठीक से प्रचारित करने और दुभाषिया से बाहर निकलने का कारण बनता है। जब इसे संभाला नहीं जाता है, तो पायथन दुभाषिया बाहर निकलता है; कोई स्टैक ट्रेसबैक मुद्रित नहीं है। निर्माणकर्ता sys.exit() को दिए गए एक ही वैकल्पिक तर्क को स्वीकार करता है। यदि मान एक पूर्णांक है, तो यह सिस्टम से बाहर निकलने की स्थिति को निर्दिष्ट करता है (C के exit() फ़ंक्शन के लिए पारित); यदि यह None , तो बाहर निकलने की स्थिति शून्य है; यदि इसका दूसरा प्रकार (जैसे कि एक स्ट्रिंग) है, तो ऑब्जेक्ट का मूल्य मुद्रित होता है और निकास की स्थिति एक होती है।

sys.exit() लिए एक कॉल को एक अपवाद में अनुवाद किया जाता है ताकि साफ-सुथरे हैंडलर ( finally में try बयानों के खंड) को निष्पादित किया जा सके, और ताकि एक डिबगर नियंत्रण खोने के जोखिम को चलाए बिना एक स्क्रिप्ट निष्पादित कर सके। os._exit() फ़ंक्शन का उपयोग किया जा सकता है यदि यह तुरंत बाहर निकलने के लिए बिल्कुल सकारात्मक रूप से आवश्यक है (उदाहरण के लिए, os.fork() लिए कॉल के बाद बच्चे की प्रक्रिया में)।

code

बाहर निकलने की स्थिति या त्रुटि संदेश जो कंस्ट्रक्टर को दिया जाता है। ( None करने के लिए चूक)

exception TypeError

जब कोई ऑपरेशन या फ़ंक्शन अनुचित प्रकार के ऑब्जेक्ट पर लागू होता है, तो उठाया जाता है। संबंधित मूल्य एक बेमेल प्रकार के बारे में विवरण देने वाला है।

यह अपवाद उपयोगकर्ता कोड द्वारा यह इंगित करने के लिए उठाया जा सकता है कि किसी ऑब्जेक्ट पर प्रयास का समर्थन समर्थित नहीं है, और इसका मतलब नहीं है। यदि कोई वस्तु किसी दिए गए ऑपरेशन का समर्थन करने के लिए है, लेकिन अभी तक एक कार्यान्वयन प्रदान नहीं किया है, तो NotImplementedError को बढ़ाने के लिए उचित अपवाद नहीं है।

गलत प्रकार के पासिंग तर्क (उदाहरण के लिए एक list जब एक int की उम्मीद की जाती है) का परिणाम टाइप टाइप में होना चाहिए, लेकिन गलत मान के साथ तर्क पारित करना (उदाहरण के बाहर की सीमा के बाहर की संख्या) एक ValueError में परिणाम होना चाहिए।

exception UnboundLocalError

उठाया जब एक समारोह या विधि में एक स्थानीय चर के लिए एक संदर्भ बनाया गया है, लेकिन कोई भी मूल्य उस चर के लिए बाध्य नहीं किया गया है। यह NameError का एक उपवर्ग है।

exception UnicodeError

जब एक यूनिकोड-संबंधित एन्कोडिंग या डिकोडिंग त्रुटि उत्पन्न होती है। यह ValueError का एक उपवर्ग है।

UnicodeError में एन्कोडिंग या डिकोडिंग त्रुटि का वर्णन करने वाले गुण हैं। उदाहरण के लिए, err.object[err.start:err.end]err.object[err.start:err.end] विशेष अमान्य इनपुट देता है जो कोडक पर विफल रहा।

encoding

एन्कोडिंग का नाम जिसने त्रुटि को उठाया।

reason

विशिष्ट कोडेक त्रुटि का वर्णन करने वाली एक स्ट्रिंग।

object

कोडेक को एन्कोड या डिकोड करने का प्रयास किया गया ऑब्जेक्ट।

start

object में अमान्य डेटा का पहला सूचकांक।

end

object में अंतिम अमान्य डेटा के बाद का सूचकांक।

exception UnicodeEncodeError

एन्कोडिंग के दौरान एक यूनिकोड से संबंधित त्रुटि होने पर उठाया जाता है। यह UnicodeError का एक उपवर्ग है।

exception UnicodeDecodeError

जब डिकोडिंग के दौरान एक यूनिकोड-संबंधी त्रुटि उत्पन्न होती है। यह UnicodeError का एक उपवर्ग है।

exception UnicodeTranslateError

अनुवाद के दौरान यूनिकोड से संबंधित त्रुटि होने पर उठाया गया। यह UnicodeError का एक उपवर्ग है।

exception ValueError

उठाया जब एक ऑपरेशन या फ़ंक्शन एक तर्क प्राप्त करता है जिसमें सही प्रकार है लेकिन एक अनुचित मूल्य है, और स्थिति को IndexError जैसे अधिक सटीक अपवाद द्वारा वर्णित नहीं किया गया है।

exception ZeroDivisionError

उठाया जब एक विभाजन या modulo ऑपरेशन का दूसरा तर्क शून्य है। संबंधित मूल्य ऑपरेंड्स और ऑपरेशन के प्रकार को इंगित करने वाला एक स्ट्रिंग है।

पिछले संस्करणों के साथ संगतता के लिए निम्नलिखित अपवाद रखे गए हैं; पायथन 3.3 से शुरू होकर, वे OSError उपनाम हैं।

exception EnvironmentError
exception IOError
exception WindowsError

केवल विंडोज पर उपलब्ध है।

ओएस अपवाद

निम्नलिखित अपवाद OSError उपवर्ग हैं, वे सिस्टम त्रुटि कोड के आधार पर OSError

exception BlockingIOError

उठाया गया जब एक ऑपरेशन गैर-ब्लॉकिंग ऑपरेशन के लिए एक ऑब्जेक्ट (जैसे सॉकेट) पर सेट होगा। EAGAIN , EALREADY , EWOULDBLOCK और EINPROGRESS को errno करने के लिए संवाददाता।

OSError अलावा, BlockingIOError में एक और विशेषता हो सकती है:

characters_written

ब्लॉक करने से पहले स्ट्रीम में लिखे गए वर्णों की संख्या वाला पूर्णांक। यह विशेषता io मॉड्यूल से बफर I / O वर्गों का उपयोग करते समय उपलब्ध है।

exception ChildProcessError

उठाया जब एक बच्चे की प्रक्रिया पर एक ऑपरेशन विफल रहा। ECHILD लिए ECHILD

exception ConnectionError

कनेक्शन से संबंधित मुद्दों के लिए एक आधार वर्ग।

Subclasses BrokenPipeError , ConnectionAbortedError , ConnectionRefusedError और ConnectionResetError

exception BrokenPipeError

ConnectionError का एक उपवर्ग, उठाया जब एक पाइप पर लिखने की कोशिश कर रहा है जबकि दूसरा छोर बंद हो गया है, या एक सॉकेट पर लिखने की कोशिश कर रहा है जो लिखने के लिए बंद हो गया है। EPIPE और ESHUTDOWN

exception ConnectionAbortedError

जब कनेक्शन का प्रयास सहकर्मी द्वारा निरस्त कर दिया जाता है, तो कनेक्शनअरोर का उपवर्ग। ECONNABORTED को errno करने के लिए पत्राचार।

exception ConnectionRefusedError

जब कनेक्शन का प्रयास सहकर्मी द्वारा अस्वीकार कर दिया जाता है, तो कनेक्शनइर्रर का उपवर्ग। ECONNREFUSED को errno करने के लिए पत्राचार।

exception ConnectionResetError

जब कनेक्शन किसी सहकर्मी द्वारा रीसेट किया जाता है, तो कनेक्शनइर्रर का उपवर्ग। ECONNRESET को errno करने के लिए पत्राचार।

exception FileExistsError

फ़ाइल या निर्देशिका बनाने का प्रयास करते समय जो पहले से मौजूद है। EEXIST को errno करने के errno EEXIST

exception FileNotFoundError

उठाया जब एक फ़ाइल या निर्देशिका का अनुरोध किया है, लेकिन मौजूद नहीं है। ENOENT करने के लिए अनुरूप है।

exception InterruptedError

जब एक सिस्टम कॉल आने वाली सिग्नल द्वारा बाधित होता है तब उठाया जाता है। EINTR को errno करने के errno EINTR

संस्करण 3.5 में परिवर्तित: पायथन अब सिस्टम कॉल को फिर से प्राप्त करता है जब एक सिग्नल द्वारा बाधित होता है, सिवाय इसके कि सिग्नल हैंडलर एक अपवाद को उठाता है (देखें राशन के लिए पीईपी 475 देखें), इसके बजाय InterruptedError को बढ़ाने के लिए।

exception IsADirectoryError

एक निर्देशिका पर फ़ाइल संचालन (जैसे कि os.remove() ) का अनुरोध किया जाता है। errno EISDIR अनुरूप है।

exception NotADirectoryError

उठाया जब एक निर्देशिका ऑपरेशन (जैसे कि os.listdir() ) किसी ऐसी चीज पर अनुरोध किया जाता है जो निर्देशिका नहीं है। ENOTDIR को errno करने के errno ENOTDIR

exception PermissionError

पर्याप्त पहुँच अधिकार के बिना एक ऑपरेशन चलाने की कोशिश करते समय उठाया गया - उदाहरण के लिए फाइलसिस्टम अनुमतियाँ। EACCES और EPERM EACCES करने के लिए पत्राचार।

exception ProcessLookupError

जब कोई दी गई प्रक्रिया मौजूद नहीं है, तो उठाया। ESRCH को errno करने के errno ESRCH

exception TimeoutError

उठाया जब एक सिस्टम फ़ंक्शन सिस्टम स्तर पर समय समाप्त हो गया। ETIMEDOUT करने के लिए अनुरूप है।

संस्करण 3.3 में नया: उपरोक्त सभी OSError उपवर्ग जोड़े गए।

यह भी देखें

पीईपी 3151 - ओएस और आईओ अपवाद पदानुक्रम का पुनर्गठन

चेतावनी

निम्नलिखित अपवादों को चेतावनी श्रेणियों के रूप में उपयोग किया जाता है; अधिक विवरण के लिए चेतावनी श्रेणियाँ प्रलेखन देखें।

exception Warning

चेतावनी श्रेणियों के लिए बेस क्लास।

exception UserWarning

उपयोगकर्ता कोड द्वारा उत्पन्न चेतावनियों के लिए बेस क्लास।

exception DeprecationWarning

जब उन चेतावनियों को अन्य पायथन डेवलपर्स के लिए अभिप्रेत सुविधाओं के बारे में चेतावनियों के लिए बेस क्लास।

exception PendingDeprecationWarning

सुविधाओं के बारे में चेतावनियों के लिए बेस क्लास जो भविष्य में हटा दी जाएगी।

exception SyntaxWarning

संदिग्ध वाक्य रचना के बारे में चेतावनी के लिए बेस क्लास।

exception RuntimeWarning

संदिग्ध रनटाइम व्यवहार के बारे में चेतावनी के लिए बेस क्लास।

exception FutureWarning

उन चेतावनियों के बारे में चेतावनियों के लिए बेस क्लास, जब उन चेतावनियों को उन एप्लिकेशन के अंतिम उपयोगकर्ताओं के लिए अभिप्रेत किया जाता है जो पायथन में लिखे गए हैं।

exception ImportWarning

मॉड्यूल आयात में संभावित गलतियों के बारे में चेतावनी के लिए बेस क्लास।

exception UnicodeWarning

यूनिकोड से संबंधित चेतावनियों के लिए बेस क्लास।

exception BytesWarning

bytes और bytearray से संबंधित चेतावनियों के लिए बेस क्लास।

exception ResourceWarning

संसाधन उपयोग से संबंधित चेतावनियों के लिए बेस क्लास। डिफ़ॉल्ट चेतावनी फ़िल्टर द्वारा अनदेखा किया गया।

संस्करण 3.2 में नया।

अपवाद पदानुक्रम

निर्मित अपवादों के लिए श्रेणी पदानुक्रम है:

BaseException
 +-- SystemExit
 +-- KeyboardInterrupt
 +-- GeneratorExit
 +-- Exception
      +-- StopIteration
      +-- StopAsyncIteration
      +-- ArithmeticError
      |    +-- FloatingPointError
      |    +-- OverflowError
      |    +-- ZeroDivisionError
      +-- AssertionError
      +-- AttributeError
      +-- BufferError
      +-- EOFError
      +-- ImportError
      |    +-- ModuleNotFoundError
      +-- LookupError
      |    +-- IndexError
      |    +-- KeyError
      +-- MemoryError
      +-- NameError
      |    +-- UnboundLocalError
      +-- OSError
      |    +-- BlockingIOError
      |    +-- ChildProcessError
      |    +-- ConnectionError
      |    |    +-- BrokenPipeError
      |    |    +-- ConnectionAbortedError
      |    |    +-- ConnectionRefusedError
      |    |    +-- ConnectionResetError
      |    +-- FileExistsError
      |    +-- FileNotFoundError
      |    +-- InterruptedError
      |    +-- IsADirectoryError
      |    +-- NotADirectoryError
      |    +-- PermissionError
      |    +-- ProcessLookupError
      |    +-- TimeoutError
      +-- ReferenceError
      +-- RuntimeError
      |    +-- NotImplementedError
      |    +-- RecursionError
      +-- SyntaxError
      |    +-- IndentationError
      |         +-- TabError
      +-- SystemError
      +-- TypeError
      +-- ValueError
      |    +-- UnicodeError
      |         +-- UnicodeDecodeError
      |         +-- UnicodeEncodeError
      |         +-- UnicodeTranslateError
      +-- Warning
           +-- DeprecationWarning
           +-- PendingDeprecationWarning
           +-- RuntimeWarning
           +-- SyntaxWarning
           +-- UserWarning
           +-- FutureWarning
           +-- ImportWarning
           +-- UnicodeWarning
           +-- BytesWarning
           +-- ResourceWarning