पायथन अभिकथन त्रुटि

Payathana Abhikathana Truti



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

पायथन में एक अभिकथन त्रुटि क्या है?

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

वाक्य - विन्यास: मुखर स्थिति, error_message (वैकल्पिक)







उदाहरण

हम इनपुट के रूप में किसी व्यक्ति की आयु दर्ज करेंगे, और यदि यह शून्य से कम है, तो कंसोल एक अभिकथन त्रुटि उत्पन्न करेगा।





अब, अगर हम 0 से कम उम्र में प्रवेश करते हैं तो क्या होगा?





इस पद्धति का उपयोग करके अपने कोड को डीबग करना आसान है, इस प्रकार प्रोग्राम में त्रुटियों को ढूंढना और त्रुटियों को ठीक करना आसान हो जाता है।



पायथन में AssertionError कैसे काम करता है

पायथन भाषा में एक मुखर कथन शामिल है जिसका उपयोग तार्किक अभिकथन के साथ सरल त्रुटि संदेश आउटपुट उत्पन्न करने के लिए किया जा सकता है। जब अभिकथन कथन विफल हो जाता है, तो एक 'अपवाद' AssertionError उठाया जाता है। पायथन में, अपवाद वर्ग बेसएक्सप्शन वर्ग से प्राप्त होते हैं। बेसएक्सप्शन क्लास, जो कि एसेर्शन एरर क्लास का बेस क्लास भी है, वह जगह है जहां से एक्सेप्शन क्लास निकलती है। जब भी किसी का उपयोग किया जाता है, तो एक मुखर कथन की विफलता से निपटने के लिए हमेशा उपयुक्त अपवाद हैंडलिंग कोड होना चाहिए। पायथन में डिफ़ॉल्ट अपवाद हैंडलर प्रोग्रामर-लिखित त्रुटि संदेश को प्रिंट करेगा, लेकिन त्रुटि को बिना किसी त्रुटि संदेश के भी नियंत्रित या हल किया जा सकता है।

पायथन में अभिकथन लागू करना

पायथन में AssertionError के कई उदाहरण निम्नलिखित हैं:

उदाहरण

इस उदाहरण में, हम एक प्रोग्राम में एक AssertionError प्रदर्शित करने के लिए एक पायथन प्रोग्राम लिखेंगे जो एक सर्कल के क्षेत्र को ढूंढता है।

त्रिज्या 'आर' मान पिछले प्रोग्राम में एक फ़ंक्शन के इनपुट के रूप में पारित किया जाता है जो सर्कल के क्षेत्र को खोजने के लिए बनाया गया है। मुखर कथन का उपयोग यह निर्धारित करने के लिए किया जाता है कि आपूर्ति मूल्य या त्रिज्या 'आर' शून्य से नीचे है या नहीं, और यदि इसे एक नकारात्मक मूल्य प्रदान किया जाता है, तो एक अपवाद उठाया जाएगा। वृत्त का क्षेत्रफल फ़ंक्शन के लिए आपूर्ति की गई त्रिज्या 'r' के मान के आधार पर वापस किया जाएगा। सबसे पहले, फ़ंक्शन को r के मान के साथ 3 के रूप में निष्पादित किया जाता है। फ़ंक्शन को फिर मान 2.5 के साथ निष्पादित किया जाता है। जब हम 'r', यानी '-1' के नकारात्मक मान का उपयोग करते हैं, तो AssertionError उठाया जाता है।

आइए एक अभिकथन त्रुटि की घटना को प्रदर्शित करने के लिए एक और उदाहरण का प्रयास करें।

उदाहरण

इस उदाहरण में, प्रोग्राम यह निर्धारित करेगा कि क्या हर का मान शून्य नहीं है।

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

अभिकथन त्रुटि के अनुप्रयोग

अभिकथन त्रुटि के अन्य लाभकारी उपयोगों में शामिल हैं:

  • अभिकथन पैरामीटर मानों के मूल्यांकन में सहायता करता है
  • अभिकथन इनपुट प्रकार की निगरानी में सहायता करते हैं और क्या वह मान मान्य है
  • इसके अतिरिक्त, अभिकथन यह पहचानने में सहायता करते हैं कि कोई अन्य कोड डेवलपर इंटरफ़ेस का दुरुपयोग कर रहा है या नहीं
  • कार्यक्रम के आउटपुट की निरंतर निगरानी में अभिकथन सहायता करते हैं

हम पायथन में मुखर त्रुटियों से कैसे बच सकते हैं?

  1. पायथन प्रोग्राम में -O ध्वज का उपयोग प्रत्येक अभिकथन कथन को अक्षम करने के लिए किया जा सकता है। यह ध्यान रखना महत्वपूर्ण है कि यदि हम अभिकथन कथन को अक्षम करते हैं तो कथन कथन के बाद आने वाले कथन निष्पादित नहीं होंगे।
  2. पर्यावरण चर भी अभिकथन बयानों को बंद करने के लिए एक ध्वज सेट कर सकता है। इस स्थिति में पर्यावरण का उपयोग या इनहेरिट करने वाली सभी प्रक्रियाएं और अनुप्रयोग प्रभावित होते हैं।
  3. पायथन में, अभिकथन त्रुटियों को रोकने का सबसे आसान तरीका उन्हें मैन्युअल रूप से संभालना है। यदि हम यह सुनिश्चित करते हैं कि प्रोग्राम का नियंत्रण प्रवाह डायवर्ट किया गया है ताकि यह अभिकथन कथनों तक न पहुँचे, तो अभिकथन त्रुटियों की कोई संभावना नहीं है।

अभिकथन को संभालना त्रुटि

अभिकथन कथन के अलावा, हम निम्नलिखित विधियों का उपयोग करके अभिकथन त्रुटि को भी संभाल सकते हैं:

कोशिश-छोड़कर ब्लॉक का उपयोग करके अभिकथन त्रुटि को संभालना

मुखर कथन यह निर्धारित करता है कि मान समान हैं या नहीं। कोशिश ब्लॉक AssertionError त्रुटि उठाता है क्योंकि ये पूर्णांक बराबर नहीं हैं। ब्लॉक को छोड़कर अपवाद को पकड़ने के बाद प्रिंट कमांड निष्पादित किया जाता है। यहां, अपवाद ब्लॉक से प्रिंट स्टेटमेंट का आउटपुट प्रदर्शित होता है। ब्लॉक को छोड़कर त्रुटि को फिर से बढ़ाने के लिए बढ़ाएँ कीवर्ड का उपयोग किया जा सकता है ताकि हम अपवाद के स्रोत का निर्धारण कर सकें। जब कोई अपवाद होता है, तो कीवर्ड 'raise' एक त्रुटि उत्पन्न करेगा और प्रोग्राम को समाप्त कर देगा। यह मौजूदा अपवाद का रिकॉर्ड/ट्रैक बनाए रखने या रखने में मदद करता है।

ट्रैसबैक मॉड्यूल का उपयोग करते हुए अभिकथन त्रुटि को संभालना

जब कोड में कई मुखर कथन होते हैं, तो ट्रेसबैक मॉड्यूल सटीक त्रुटि के स्रोत की पहचान करने में सहायता करता है।

ट्रेसबैक मॉड्यूल का उपयोग करके, हमारे प्रिंट स्टेटमेंट को प्लेसहोल्डर {} के साथ लिखा जा सकता है।

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

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

कथन 'राइज़' के तीन घटक — exc_type, exc_traceback, और exc_value — sys.exc_info() फ़ंक्शन द्वारा लौटाए जाते हैं।

अभिकथन को संभालना प्रिंट स्टेटमेंट का उपयोग करने में त्रुटि

अपवाद को मैन्युअल रूप से संभालने के लिए, हम ब्लॉक को छोड़कर के अंदर 'प्रिंट' कथन का उपयोग कर सकते हैं।

प्रिंट स्टेटमेंट उपयोगकर्ता द्वारा दर्ज किए गए किसी भी त्रुटि संदेश को प्रिंट करता है। इस पद्धति के साथ, तकनीकी त्रुटि उपयोगकर्ता के लिए चिंता का विषय नहीं होगी।

त्रुटि के बजाय, एक संक्षिप्त संदेश प्रदर्शित होता है।

निष्कर्ष

इस पोस्ट में, हमने पहली बार पायथन में अपवादों की शुरूआत देखी। हमने AssertionError पर चर्चा की कि यह कैसे काम करता है, और हम Python में AssertionError को कैसे लागू कर सकते हैं। हमने AssertionError के कई फायदे बताए हैं और हम उनसे कैसे बच सकते हैं। इस पोस्ट के अंतिम भाग में, हमने देखा कि कैसे हम ट्राई-एक्सेप्ट ब्लॉक्स, ट्रेसबैक मॉड्यूल और प्रिंट स्टेटमेंट का उपयोग करके पायथन में AssertionError को हैंडल कर सकते हैं।