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