पायथन में त्रुटि हैंडलिंग
इस लेख में, हम पायथन में त्रुटि हैंडलिंग की व्याख्या करेंगे।
YouTube Video
पायथन में त्रुटि हैंडलिंग
पायथन में त्रुटि हैंडलिंग मुख्य रूप से try
, except
, else
, और finally
कुंजीशब्दों का उपयोग करके की जाती है। इन संरचनाओं का उपयोग करने से आप अपने प्रोग्राम में त्रुटि होने पर उचित प्रतिक्रिया दे सकते हैं। नीचे, हम इनमें से प्रत्येक का उपयोग करने के तरीके की व्याख्या करेंगे।
try
ब्लॉक
try
ब्लॉक के भीतर, आप वह कोड लिखते हैं जिसे आप निष्पादित करना चाहते हैं। यदि इस ब्लॉक में त्रुटि होती है, तो प्रोग्राम निष्पादन तुरंत except
ब्लॉक में चला जाता है।
1try:
2 # Code that may raise an error (division by zero, for example)
3 #number = int(input("Enter a number: "))
4 number = int("abc")
5 result = 10 / number
6 print("Result:", result)
7except ValueError as e:
8 # Handle invalid input (e.g. non-numeric input)
9 print("Invalid input. Please enter a whole number.")
10 print(f"Value error: {e}")
11except ZeroDivisionError as e:
12 # Handle division by zero error
13 print("Cannot divide by zero!")
14 print(f"Zero division error: {e}")
- यह कोड एक उदाहरण है जिसमें
try
ब्लॉक में त्रुटियाँ पकड़कर उन्हें उपयुक्त रूप से संभाला गया है, जहाँ या तोValueError
याZeroDivisionError
को पकड़ा जाता है।
except
ब्लॉक
except
ब्लॉक में, आप वह कोड लिखते हैं जो किसी विशेष अपवाद (त्रुटि) होने पर निष्पादित होगा। आप अपवाद के प्रकार के अनुसार विशिष्ट अपवादों को भी पकड़ सकते हैं।
1try:
2 #number = int(input("Enter a number: "))
3 number = 0
4 result = 10 / number
5 print("Result:", result)
6except ZeroDivisionError as e:
7 print("Cannot divide by zero!")
8 print(f"Zero division error: {e}")
9except ValueError as e:
10 print("Input was not a valid integer.")
11 print(f"Value error: {e}")
- यह कोड एक उदाहरण है जिसमें
try
ब्लॉक में त्रुटि होने परexcept
ब्लॉक में प्रत्येक प्रकार के अपवाद के लिए अलग-अलग संचालन किया गया है।
कई अपवादों को एक साथ संभालना
जब कई अपवाद कक्षाएं एक ही हैंडलिंग लॉजिक साझा कर सकती हैं तो एक टपल निर्दिष्ट करें।
1try:
2 my_list = [1, 2]
3 result = my_list[3] + 10 / 0
4except (IndexError, ZeroDivisionError) as e:
5 print(f"Exception occurred: {e}")
- यह कोड एक उदाहरण है जिसमें
IndexError
औरZeroDivisionError
दोनों को एक साथ पकड़ा गया है और दोनों अपवादों को एक ही तरीके से संभाला गया है।
अपवादों को बिना शर्त पकड़ना
यदि आप सभी प्रकार के अपवादों को एक ही ब्लॉक में संभालना चाहते हैं तो except
के लिए तर्क को छोड़ दें।
1try:
2 # This code might cause some exception
3 result = "10" + 5 # TypeError
4except Exception as e:
5 print("Unexpected error")
- हालांकि, सभी अपवादों को बिना शर्त पकड़ने की बजाय विशेष अपवादों को संभालना बग खोजने और डिबगिंग के लिए अधिक सहायक होता है। जहाँ भी संभव हो, केवल अपेक्षित अपवादों जैसे कि
ValueError
याTypeError
को स्पष्ट रूप से संभालना आपके कोड की मजबूती बढ़ाएगा।
else
ब्लॉक
else
ब्लॉक केवल तभी निष्पादित होता है जब try
ब्लॉक के भीतर कोई त्रुटि नहीं होती।
1try:
2 #number = int(input("Enter a number: "))
3 number = 5
4 result = 10 / number
5except ZeroDivisionError as e:
6 print("Cannot divide by zero!")
7 print(f"Zero division error: {e}")
8except ValueError as e:
9 print("Input was not a valid integer.")
10 print(f"Value error: {e}")
11else:
12 # This block will execute only if no exceptions were raised
13 print("Result:", result)
- यह कोड एक उदाहरण है जहाँ
else
ब्लॉक केवल तब निष्पादित होता है जबtry
ब्लॉक में कोई त्रुटि नहीं होती।
finally
ब्लॉक
finally
ब्लॉक का उपयोग ऐसा कोड लिखने के लिए किया जाता है जो हमेशा अंत में निष्पादित होगा, चाहे try
ब्लॉक में त्रुटि हुई हो या नहीं। यह संसाधनों को मुक्त करने या सफाई कार्यों को करने के लिए उपयोगी है।
1try:
2 #number = int(input("Enter a number: "))
3 number = int("abc")
4 result = 10 / number
5except ZeroDivisionError as e:
6 print("Cannot divide by zero!")
7 print(f"Zero division error: {e}")
8except ValueError as e:
9 print("Input was not a valid integer.")
10 print(f"Value error: {e}")
11else:
12 # This block will execute only if no exceptions were raised
13 print("Result:", result)
14finally:
15 # This block will always execute, regardless of whether an exception was raised
16 print("Execution completed.")
- यह कोड एक उदाहरण है जो दर्शाता है कि
finally
ब्लॉक निष्पादित होता है, चाहे अपवाद हो या न हो।
raise
कीवर्ड
raise
कीवर्ड का उपयोग करके उस स्थिति में अपवाद को उठाना भी संभव है जब मौजूदा कोड में कुछ शर्तें पूरी नहीं होती हैं।
1def divide(a, b):
2 if b == 0:
3 raise ValueError("Cannot divide by zero.")
4 return a / b
5
6try:
7 result = divide(10, 0)
8except ValueError as e:
9 print(f"Error: {e}")
- यह कोड एक उदाहरण है जिसमें किसी शर्त के पूरा न होने पर
raise
कीवर्ड का उपयोग करके स्पष्ट रूप से अपवाद उत्पन्न किया गया है।
निष्कर्ष
इस तरह से त्रुटियों को संभालकर, आप प्रोग्राम क्रैश को रोक सकते हैं, उपयोगकर्ता को उपयुक्त संदेश प्रदर्शित कर सकते हैं, और बाद की प्रोग्राम प्रोसेसिंग जारी रख सकते हैं।
आप हमारे YouTube चैनल पर Visual Studio Code का उपयोग करके ऊपर दिए गए लेख के साथ आगे बढ़ सकते हैं। कृपया YouTube चैनल को भी देखें।