Python त्रुटि कोड
Python त्रुटि कोड विशेष प्रकार की अपवाद स्थितियाँ हैं जो तब उत्पन्न होती हैं जब प्रोग्राम में कोई असामान्य या अवैध ऑपरेशन किया जाता है। इन त्रुटियों को समझना अत्यंत महत्वपूर्ण है ताकि डेवलपर्स प्रभावी डिबगिंग, स्थिर प्रोग्राम और मजबूत त्रुटि हैंडलिंग लागू कर सकें। Python त्रुटियाँ आमतौर पर तब होती हैं जब कोड की syntax गलत हो, गलत डेटा प्रकार का उपयोग किया गया हो, गैर-मौजूद संसाधनों तक पहुँचने की कोशिश की गई हो या लॉजिक में गलती हो। मुख्य अवधारणाएँ हैं syntax, अपवाद प्रकार, डिबगिंग तकनीक और त्रुटि हैंडलिंग। Python त्रुटि कोड को समझकर डेवलपर्स जल्दी से समस्या का स्रोत पहचान सकते हैं, सही try/except
ब्लॉक लागू कर सकते हैं और उत्पादन वातावरण में त्रुटि सूचना लॉग कर सकते हैं। यह संदर्भ दस्तावेज़ सामान्य त्रुटियों, उनके उत्पन्न होने की स्थितियों, डिबगिंग रणनीतियों और backend विकास में best practices का व्यापक अवलोकन प्रदान करता है। पाठक सीखेंगे कि कैसे स्थिर और विश्वसनीय सिस्टम बनाएँ, जो क्रैश के जोखिम को कम करें और डेटा सुरक्षा सुनिश्चित करें।
एक उदाहरण के रूप में, मान लें कि हमारे पास एक backend सिस्टम है जो उपयोगकर्ता इनपुट प्रोसेस करता है, फ़ाइलें पढ़ता है और डेटाबेस से जुड़ता है। इसमें त्रुटियाँ जैसे FileNotFoundError
, ValueError
, या ZeroDivisionError
उत्पन्न हो सकती हैं। स्थिरता सुनिश्चित करने के लिए, संभावित त्रुटिपूर्ण ऑपरेशन को try
ब्लॉक में रखा जाता है, और प्रत्येक विशिष्ट अपवाद के लिए अलग except
ब्लॉक इस्तेमाल किया जाता है। इससे त्रुटियों के अनुसार कार्रवाई की जा सकती है, डिबगिंग जानकारी लॉग की जा सकती है और वैकल्पिक समाधान लागू किए जा सकते हैं। finally
ब्लॉक यह सुनिश्चित करता है कि महत्वपूर्ण संसाधन जैसे फ़ाइलें या डेटाबेस कनेक्शन त्रुटि होने पर भी सही ढंग से मुक्त हो जाएँ। इस दृष्टिकोण से प्रोग्राम क्रैश से बचता है, स्थिरता और maintainability बढ़ती है। वास्तविक backend अनुप्रयोगों में सटीक त्रुटि हैंडलिंग सिस्टम की स्थिरता, प्रदर्शन और उपयोगकर्ता विश्वास के लिए आवश्यक है।
Example
pythondef process_data():
try:
# NameError: अपरिभाषित वेरिएबल का उपयोग
print(undefined_variable)
# ZeroDivisionError: शून्य से विभाजन
result = 10 / 0
# ValueError: गलत प्रकार परिवर्तन
number = int("abc")
# FileNotFoundError: फ़ाइल मौजूद नहीं
with open("missing_file.txt", "r") as f:
content = f.read()
# AttributeError: अस्तित्वहीन मेथड को कॉल करना
[].appendx(1)
except NameError as ne:
print(f"पकड़ा गया NameError: {ne}")
except ZeroDivisionError as zde:
print(f"पकड़ा गया ZeroDivisionError: {zde}")
except ValueError as ve:
print(f"पकड़ा गया ValueError: {ve}")
except FileNotFoundError as fe:
print(f"पकड़ा गया FileNotFoundError: {fe}")
except AttributeError as ae:
print(f"पकड़ा गया AttributeError: {ae}")
except Exception as e:
print(f"अन्य अपवाद पकड़ा गया: {e}")
finally:
print("संसाधनों की सफाई और बंद करना सुनिश्चित किया गया।")
process_data()
📊 Comprehensive Reference
Error | विवरण | कब उत्पन्न होती है | उदाहरण | टिप्पणियाँ |
---|---|---|---|---|
SyntaxError | सिंटैक्स त्रुटि | गलत कोड | eval('x === 2') |
कम्पाइल समय पर पकड़ी जाती है |
IndentationError | इंडेंटेशन त्रुटि | असंगत इंडेंटेशन | if True:\nprint("Hi") |
SyntaxError की उपश्रेणी |
TabError | टैब और स्पेस मिला हुआ | टैब और स्पेस मिश्रित | <tab> <space> print("Hi") |
समान इंडेंटेशन जरूरी |
NameError | वेरिएबल परिभाषित नहीं | गैर-मौजूद वेरिएबल का उपयोग | print(x) |
डिबगिंग में सामान्य |
TypeError | गलत प्रकार | असंगत प्रकार ऑपरेशन | 5 + "5" |
Python डायनामिक टाइपिंग |
ValueError | अमान्य मान | गलत प्रकार परिवर्तन | int("abc") |
इनपुट सत्यापित करें |
IndexError | सूची इंडेक्स आउट ऑफ रेंज | सूची के बाहर पहुंच | lst = []; lst[1] |
लंबाई चेक करें |
KeyError | कुंजी मौजूद नहीं | डिक्शनरी में कुंजी नहीं | d = {}; d['x'] |
dict.get() मदद कर सकता है |
AttributeError | अस्तित्वहीन एट्रिब्यूट | एट्रिब्यूट या मेथड नहीं | [].appendx(1) |
मethode नाम जाँचें |
ZeroDivisionError | शून्य से विभाजन | डिवाइज़र 0 | 10 / 0 |
डिवाइज़र जांचें |
ImportError | मॉड्यूल नहीं मिला | गायब मॉड्यूल | import missing_module |
इंस्टालेशन चेक करें |
ModuleNotFoundError | मॉड्यूल नहीं मिला | गैर-मौजूद मॉड्यूल | import nonexist_module |
Python 3.6+ |
FileNotFoundError | फ़ाइल मौजूद नहीं | फ़ाइल नहीं मिली | open("nofile.txt") |
पथ जाँचें |
IsADirectoryError | फ़ाइल अपेक्षित, डायरेक्टरी | open("folder") |
OS-विशिष्ट | |
NotADirectoryError | डायरेक्टरी अपेक्षित, फ़ाइल | os.listdir("file.txt") |
OS-विशिष्ट | |
PermissionError | अपर्याप्त अनुमति | फ़ाइल एक्सेस नहीं | open("/root/file") |
अनुमति चेक करें |
OSError | सिस्टम त्रुटि | OS से संबंधित समस्या | os.remove("/root/file") |
अन्य त्रुटियों का आधार |
OverflowError | न्यूमेरिकल ओवरफ़्लो | मान बहुत बड़ा | 2.0**10000 |
Python 3 में दुर्लभ |
RecursionError | बहुत गहरी पुनरावृत्ति | अनंत recursive call | def f(): f(); f() |
sys.setrecursionlimit() |
MemoryError | स्मृति अपर्याप्त | अत्यधिक डेटा | a = 'a'*10**10 |
सिस्टम निर्भर |
StopIteration | इटरेटर समाप्त | खाली iterator | next(iter([])) |
custom iterator |
AssertionError | Assertion विफल | assert False |
शर्त सत्यापित करें | |
FloatingPointError | फ्लोटिंग पॉइंट त्रुटि | गलत FP ऑपरेशन | numpy.seterr(all='raise') |
NumPy |
UnicodeError | एन्कोड/डीकोड त्रुटि | "ü".encode("ascii") |
एन्कोडिंग जांचें | |
UnicodeDecodeError | डीकोडिंग विफल | b'\xff'.decode('utf-8') |
फ़ाइल पढ़ें | |
UnicodeEncodeError | एन्कोडिंग विफल | "ü".encode("ascii") |
गलत encoding | |
RecursionWarning | पुनरावृत्ति चेतावनी | गहरी recursive call | import warnings |
fatal नहीं |
DeprecationWarning | पुरानी फ़ंक्शन चेतावनी | deprecated फ़ंक्शन | warnings.warn("deprecated") |
migration आवश्यक |
RuntimeWarning | रनटाइम चेतावनी | संभावित समस्या | import warnings |
fatal नहीं |
FutureWarning | भविष्य चेतावनी | भविष्य में बदलाव | warnings.warn("future") |
compatibility जांचें |
UserWarning | यूज़र चेतावनी | custom warning | warnings.warn("user") |
fatal नहीं |
PendingDeprecationWarning | जल्द पुरानी | फ़ंक्शन जल्द deprecated | warnings.warn("pending") |
दुर्लभ |
ResourceWarning | संसाधन मुक्त नहीं | फ़ाइल बंद नहीं | open("file") |
Python 3+ |
ArithmeticError | गणितीय त्रुटि | गलत गणितीय ऑपरेशन | int("x")/0 |
आधार त्रुटि |
BufferError | बफर त्रुटि | गलत buffer operation | memoryview(b'').release() |
दुर्लभ |
ConnectionError | कनेक्शन त्रुटि | नेटवर्क समस्या | requests.get("bad_url") |
नेटवर्क |
BrokenPipeError | Pipe टूट गई | बंद pipe में write | os.write(fd, b'data') |
Unix |
ChildProcessError | Child process error | Child process error | os.waitpid(-1) |
दुर्लभ |
EOFError | अनपेक्षित EOF | इनपुट समाप्त | input() EOF |
खाली इनपुट |
EnvironmentError | पर्यावरण त्रुटि | OS/Environment error | os.remove("/root/file") |
OSError आधार |
GeneratorExit | Generator बंद | gen.close() |
Generators | |
IOError | I/O त्रुटि | Read/Write failure | open("/root/file") |
Python 3 -> OSError |
InterruptedError | बाधित | System call interrupted | os.read(fd, 0) |
Unix |
LookupError | सर्च त्रुटि | अमान्य खोज | d['x'] |
Lookup आधार |
ReferenceError | अमान्य रेफ़रेंस | Weak ref expired | import weakref |
दुर्लभ |
RuntimeError | रनटाइम त्रुटि | raise RuntimeError() |
सामान्य त्रुटि | |
StopAsyncIteration | Async iterator समाप्त | async for |
Python 3.5+ | |
SyntaxWarning | सिंटैक्स चेतावनी | संदिग्ध सिंटैक्स | warnings.warn("syntax") |
प्रोग्राम नहीं रुकता |
SystemError | सिस्टम त्रुटि | Internal Python error | sys._getframe(0) |
दुर्लभ |
SystemExit | सिस्टम समाप्ति | sys.exit() |
प्रोग्राम बंद | |
TimeoutError | समय समाप्त | Operation timeout | socket.settimeout() |
नेटवर्क |
UnboundLocalError | लोकल वेरिएबल unbound | पहले असाइनमेंट से पहले | x=1; def f(): print(x); x=2 |
NameError subclass |
ZeroDivisionError | शून्य से विभाजन | Divisor 0 | 10 / 0 |
Divisor जांचें |
🧠 अपने ज्ञान की परीक्षा करें
Test Your Knowledge
Python त्रुटि कोड के ज्ञान की जांच करें
📝 निर्देश
- हर प्रश्न को ध्यान से पढ़ें
- हर प्रश्न के लिए सबसे अच्छा उत्तर चुनें
- आप जितनी बार चाहें क्विज़ दोबारा दे सकते हैं
- आपकी प्रगति शीर्ष पर दिखाई जाएगी