अपवाद प्रबंधन के लिए पायथन में अपवाद फेंकना

अपवाद प्रबंधन के लिए पायथन में अपवाद फेंकना
अपवाद प्रबंधन के लिए पायथन में अपवाद फेंकना

पायथन में एक्सेप्शन हैंडलिंग को समझना

पायथन में, अपवाद किसी प्रोग्राम के निष्पादन के दौरान होने वाली त्रुटियों और असाधारण मामलों से निपटने के लिए एक शक्तिशाली उपकरण है। अपवादों को मैन्युअल रूप से बढ़ाकर, डेवलपर्स विशिष्ट समस्याओं की घटना का संकेत दे सकते हैं और अपने अनुप्रयोगों के प्रवाह को अधिक प्रभावी ढंग से प्रबंधित कर सकते हैं।

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

आज्ञा विवरण
raise पायथन में अपवाद को मैन्युअल रूप से ट्रिगर करने के लिए उपयोग किया जाता है।
try निष्पादित करते समय त्रुटियों का परीक्षण करने के लिए कोड के एक ब्लॉक को परिभाषित करता है।
except ट्राई ब्लॉक में होने वाले अपवादों को पकड़ता है और संभालता है।
else यदि प्रयास ब्लॉक में कोई अपवाद नहीं उठाया गया है तो कोड का एक ब्लॉक निष्पादित करता है।
ValueError एक अंतर्निहित अपवाद तब उठाया जाता है जब किसी फ़ंक्शन को सही प्रकार का लेकिन अनुचित मान का तर्क प्राप्त होता है।
__init__ किसी वर्ग की विशेषताओं को आरंभ करता है, जिसका उपयोग आमतौर पर कस्टम अपवादों को परिभाषित करने में किया जाता है।

अपवाद हैंडलिंग स्क्रिप्ट की विस्तृत व्याख्या

पहले स्क्रिप्ट उदाहरण में, function 0 दर्शाता है कि इसका उपयोग करके मैन्युअल रूप से अपवाद कैसे उठाया जाए raise आज्ञा। यदि भाजक b शून्य है, फ़ंक्शन a बढ़ाता है ValueError एक कस्टम संदेश के साथ "शून्य से विभाजित नहीं किया जा सकता!" यह प्रभावी रूप से फ़ंक्शन के निष्पादन को रोक देता है और नियंत्रण को स्थानांतरित कर देता है try ब्लॉक, जो तर्कों के साथ फ़ंक्शन को कॉल करने का प्रयास करता है class NegativeNumberError(Exception): और 0. जब अपवाद उठाया जाता है, तो नियंत्रण को पास कर दिया जाता है except ब्लॉक, जो पकड़ता है ValueError और त्रुटि संदेश प्रिंट करता है। यदि कोई अपवाद नहीं उठाया गया है, तो else ब्लॉक विभाजन के परिणाम को प्रिंट करते हुए निष्पादित करेगा।

दूसरी स्क्रिप्ट में एक कस्टम अपवाद वर्ग शामिल है class NegativeNumberError(Exception): जो कि Python के बिल्ट-इन से विरासत में मिला है Exception कक्षा। __init__ विधि एक मान के साथ अपवाद को प्रारंभ करती है, और __str__ विधि त्रुटि का एक स्ट्रिंग प्रतिनिधित्व लौटाती है। कार्यक्रम def check_positive_number(n): यदि इनपुट होता है तो यह कस्टम अपवाद उठाता है n नकारात्मक है. में try ब्लॉक, फ़ंक्शन को कॉल किया जाता है -5, जो बढ़ाता है NegativeNumberError और नियंत्रण को स्थानांतरित कर देता है except ब्लॉक करें, जहां त्रुटि संदेश मुद्रित होता है। यदि कोई अपवाद नहीं होता है, तो else ब्लॉक पुष्टि करता है कि संख्या सकारात्मक है।

पायथन में अपवाद कैसे बढ़ाएं और संभालें

पायथन प्रोग्रामिंग उदाहरण

# Function to demonstrate raising an exception
def divide_numbers(a, b):
    if b == 0:
        raise ValueError("Cannot divide by zero!")
    return a / b

# Main block to catch the exception
try:
    result = divide_numbers(10, 0)
except ValueError as e:
    print(f"Error: {e}")
else:
    print(f"Result: {result}")

पायथन अनुप्रयोगों में कस्टम अपवाद हैंडलिंग

कस्टम अपवाद कक्षाओं के साथ पायथन

# Defining a custom exception
class NegativeNumberError(Exception):
    def __init__(self, value):
        self.value = value
    def __str__(self):
        return f"Negative numbers are not allowed: {self.value}"

# Function to demonstrate raising a custom exception
def check_positive_number(n):
    if n < 0:
        raise NegativeNumberError(n)
    return n

# Main block to catch the custom exception
try:
    number = check_positive_number(-5)
except NegativeNumberError as e:
    print(f"Error: {e}")
else:
    print(f"Number is positive: {number}")

पायथन में उन्नत अपवाद हैंडलिंग तकनीकें

मानक और कस्टम अपवादों को बढ़ाने और संभालने के अलावा, पायथन अपवाद प्रबंधन के लिए कई उन्नत तकनीकें प्रदान करता है जो जटिल अनुप्रयोगों में बहुत उपयोगी हो सकती हैं। ऐसी ही एक तकनीक का उपयोग है finally अवरोध पैदा करना। finally ब्लॉक डेवलपर्स को कुछ कोड निष्पादित करने की अनुमति देता है, भले ही कोई अपवाद हुआ हो। यह संसाधन प्रबंधन कार्यों के लिए विशेष रूप से उपयोगी हो सकता है, जैसे फ़ाइलें बंद करना या नेटवर्क कनेक्शन जारी करना। यह सुनिश्चित करके कि महत्वपूर्ण क्लीनअप कोड हमेशा निष्पादित किया जाता है, आप अपने एप्लिकेशन को अधिक मजबूत बना सकते हैं और संसाधन लीक को रोक सकते हैं।

एक अन्य उन्नत सुविधा का उपयोग करके अपवादों को श्रृंखलाबद्ध करने की क्षमता है from कीवर्ड. जब आप कोई अपवाद उठाते हैं, तो आप एक अन्य अपवाद प्रदान कर सकते हैं जिसके कारण यह हुआ, एक स्पष्ट कारण-और-प्रभाव श्रृंखला बना सकते हैं। यह डिबगिंग के लिए बेहद उपयोगी है, क्योंकि यह त्रुटियों के अनुक्रम के बारे में अधिक संदर्भ प्रदान करता है। इसके अतिरिक्त, पायथन के संदर्भ प्रबंधकों का उपयोग किया जाता है with कथन, संसाधनों को अधिक प्रभावी ढंग से प्रबंधित करने में मदद कर सकता है। संदर्भ प्रबंधक स्वचालित रूप से सेटअप और टियरडाउन प्रक्रियाओं को संभालते हैं, यह सुनिश्चित करते हुए कि निष्पादन के दौरान कोई त्रुटि होने पर भी संसाधनों को ठीक से प्रबंधित किया जाता है।

पायथन में एक्सेप्शन हैंडलिंग पर सामान्य प्रश्न और उत्तर

  1. मैं पायथन में कस्टम अपवाद कैसे बढ़ाऊं?
  2. आप विरासत में मिले नए वर्ग को परिभाषित करके एक कस्टम अपवाद बढ़ा सकते हैं Exception और का उपयोग कर रहा हूँ raise उस वर्ग के उदाहरण के साथ कथन।
  3. का उद्देश्य क्या है finally अवरोध पैदा करना?
  4. finally ब्लॉक का उपयोग उस कोड को निष्पादित करने के लिए किया जाता है जिसे चलना चाहिए चाहे कोई अपवाद उठाया गया हो या नहीं, अक्सर सफाई कार्यों के लिए उपयोग किया जाता है।
  5. मैं पायथन में अपवादों की श्रृंखला कैसे बना सकता हूँ?
  6. आप इसका उपयोग करके अपवादों को श्रृंखलाबद्ध कर सकते हैं from कीवर्ड, जो आपको मूल अपवाद के संदर्भ को संरक्षित करते हुए एक नया अपवाद बढ़ाने की अनुमति देता है।
  7. पायथन में एक संदर्भ प्रबंधक क्या है?
  8. संदर्भ प्रबंधक का उपयोग करके संसाधनों को प्रबंधित करने का एक तरीका है with यह सुनिश्चित करने के लिए कथन कि सेटअप और टियरडाउन कोड ठीक से निष्पादित किया गया है।
  9. मैं एक ही ब्लॉक में एकाधिक अपवादों को कैसे संभाल सकता हूँ?
  10. आप एक ही समय में अनेक अपवादों को संभाल सकते हैं except अपवाद प्रकारों का एक टुपल निर्दिष्ट करके ब्लॉक करें।
  11. क्या मैं एक ब्लॉक से सभी अपवाद पकड़ सकता हूँ?
  12. हाँ, आप बेअर का उपयोग करके सभी अपवादों को पकड़ सकते हैं except: कथन, लेकिन आम तौर पर इसकी अनुशंसा नहीं की जाती क्योंकि यह बग छिपा सकता है।
  13. यदि कोई अपवाद नहीं पकड़ा गया तो क्या होगा?
  14. यदि कोई अपवाद नहीं पकड़ा जाता है, तो यह कॉल स्टैक तक फैल जाता है और अंततः ट्रेसबैक प्रदर्शित करते हुए प्रोग्राम को समाप्त कर देगा।
  15. मैं पायथन में अपवाद कैसे लॉग करूं?
  16. आप इसका उपयोग करके अपवाद लॉग कर सकते हैं logging मॉड्यूल, जो लचीली लॉगिंग सुविधाएं प्रदान करता है।
  17. के बीच क्या अंतर है assert और raise?
  18. assert जबकि स्थितियों की जांच करने के लिए डिबगिंग उद्देश्यों के लिए उपयोग किया जाता है raise सामान्य निष्पादन के दौरान अपवादों को मैन्युअल रूप से फेंकने के लिए उपयोग किया जाता है।

पायथन में अपवाद हैंडलिंग पर अंतिम विचार

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