目次
- 1 1. परिचय: Python मा अपवाद ह्यान्डलिंगको महत्त्व
- 2 2. Python को अपवाद ह्यान्डलिङ: आधारभूत वाक्य संरचना र यसको प्रवाह
- 3 3. प्रायः प्रयोग हुने अपवादहरू र तिनीहरूको ह्यान्डलिङ्ग विधि
- 4 4. बहु अपवादहरूलाई प्रक्रिया गर्ने तरिका
- 5 5. प्रयोगकर्ता-परिभाषित अपवादहरू र raise कथनको प्रयोग
- 6 6. सारांश र उत्तम अभ्यासहरू
1. परिचय: Python मा अपवाद ह्यान्डलिंगको महत्त्व
प्रोग्रामिङमा, अपवाद र त्रुटिहरू अपरिहार्य हुन्छन्। तर, अपवादलाई उचित रूपमा ह्यान्डल गरेर, प्रोग्रामको अनपेक्षित रोकावटलाई रोक्न सकिन्छ र प्रयोगकर्तालाई उपयुक्त त्रुटि सन्देश प्रदान गर्न सकिन्छ। Python मा, यस्ता अपवादहरूलाई ह्यान्डल गर्नको लागि शक्तिशाली मेकानिज्म उपलब्ध छ। अपवाद ह्यान्डलिंगको प्रयोगले प्रोग्रामको विश्वसनीयता बढ्छ र अधिक सुगम रूपमा चल्छ। उदाहरणका लागि, प्रयोगकर्ताले शून्यले भाग गर्ने गणना गरेमा वा अवस्थित नभएको फाइल खोल्ने प्रयास गरेमा, अपवाद ह्यान्डलिंग नभएमा प्रोग्राम तुरुन्तै रोकिएर जान्छ। तर, अपवादलाई उचित रूपमा ह्यान्डल गरेर, प्रोग्रामलाई जारी राख्न वा प्रयोगकर्तालाई बुझ्न सजिलो त्रुटि सन्देश देखाउन सम्भव हुन्छ।2. Python को अपवाद ह्यान्डलिङ: आधारभूत वाक्य संरचना र यसको प्रवाह
Python मा, अपवाद ह्यान्डलिङको लागि मुख्यतया ३ वटा किवर्ड प्रयोग गरिन्छ।try
, except
, र finally
हुन्।2.1 try
वाक्यांशले त्रुटि पत्ता लगाउने
try
वाक्यांशलाई त्रुटि हुन सक्ने प्रक्रियालाई घेरिनका लागि प्रयोग गरिन्छ। विशेष गरी, नेटवर्क अपरेसन, फाइल प्रोसेसिङ, प्रयोगकर्ता इनपुट आदि, चलाउँदा त्रुटि हुन सक्ने स्थानहरूलाई try
ब्लकले घेरिन्छ।try:
result = 10 / 0
except:
print("त्रुटि उत्पन्न भयो")
उपरोक्त उदाहरणमा, 10 / 0
जस्तो अवैध गणना द्वारा अपवाद उत्पन्न हुन्छ, र except
ब्लक कार्यान्वित हुन्छ।2.2 except
वाक्यांशले त्रुटि प्रक्रिया गर्ने
except
वाक्यांशले उत्पन्न भएको अपवादलाई क्याच गरेर प्रक्रिया गर्छ। त्रुटि उत्पन्न हुँदा, प्रोग्रामले अनपेक्षित व्यवहार नदेखाओस् भनेर, except
मार्फत उपयुक्त प्रक्रिया गरिन्छ। अपवादको प्रकार अनुसार फरक प्रक्रिया लेख्न पनि सम्भव छ।try:
print(a)
except NameError:
print("चल परिभाषित गरिएको छैन")
except ZeroDivisionError:
print("0 ले भाग गर्न सकिँदैन")
यसरी, धेरै अपवादहरूका लागि व्यक्तिगत प्रक्रिया सेट गर्न सकिन्छ।2.3 finally
वाक्यांशले स्रोतहरू निश्चित रूपमा मुक्त गर्ने
finally
वाक्यांशले, अपवाद उत्पन्न भए पनि, अनिवार्य रूपमा चल्ने ब्लक हो। फाइल अपरेसन वा नेटवर्क स्रोत प्रयोग गरिँदा, अपवाद भए पनि स्रोतलाई अनिवार्य रूपमा मुक्त गर्न प्रयोग गरिन्छ।try:
file = open("test.txt", "r")
finally:
file.close()
यसरी, फाइल अपरेसन वा डाटाबेस कनेक्शन जस्ता, स्रोत व्यवस्थापनलाई निश्चित रूपमा गर्ने अवस्थामा finally
अत्यन्त उपयोगी हुन्छ।3. प्रायः प्रयोग हुने अपवादहरू र तिनीहरूको ह्यान्डलिङ्ग विधि
Python मा विभिन्न प्रकारका अपवादहरू उपलब्ध छन्। तल केही प्रतिनिधि अपवादहरू र तिनीहरूको समाधान विधिहरू प्रस्तुत गरिएका छन्।3.1 NameError
:अपरिभाषित चल प्रयोग गर्दा
NameError
तब उत्पन्न हुन्छ जब अपरिभाषित चललाई सन्दर्भ गरिन्छ। उदाहरणका लागि, चल प्रारम्भिकरण नभएको अवस्थामा।try:
print(a)
except NameError:
print("चल परिभाषित गरिएको छैन")
3.2 TypeError
:विभिन्न प्रकारहरूलाई सञ्चालन गर्ने प्रयास गर्दा
TypeError
विभिन्न डेटा प्रकारहरूलाई गलत तरिकाले सञ्चालन गर्दा उत्पन्न हुन्छ। उदाहरणका लागि, संख्यात्मक प्रकार र स्ट्रिङ प्रकारलाई जोड्ने प्रयास गर्दा।try:
result = '10' + 5
except TypeError:
print("विभिन्न प्रकारहरूलाई सञ्चालन गर्ने प्रयास गरियो")
3.3 ValueError
:अनुपयुक्त मान पास गरिएमा
ValueError
अमान्य मान पास गरिएमा उत्पन्न हुन्छ। उदाहरणका लागि, स्ट्रिङलाई पूर्णांकमा रूपान्तरण गर्ने प्रयास गर्दा।try:
number = int("abc")
except ValueError:
print("अनुपयुक्त मान पास गरिएको थियो")
4. बहु अपवादहरूलाई प्रक्रिया गर्ने तरिका
Python मा, एकैtry
ब्लकभित्र बहु अपवादहरूलाई समात्न सम्भव छ। साथै, एकै except
कथनमा बहु अपवादहरूलाई एकसाथ प्रक्रिया गर्न पनि सकिन्छ।4.1 बहु अपवादहरूलाई व्यक्तिगत रूपमा प्रक्रिया गर्ने
यदि बहु अपवादहरूलाई व्यक्तिगत रूपमा प्रक्रिया गर्न चाहनुहुन्छ भने, बहुexcept
ब्लकहरू प्रयोग गरिन्छ।try:
result = 10 / 0
except ZeroDivisionError:
print("0 द्वारा भाग गर्न सम्भव छैन।")
except NameError:
print("चल परिभाषित गरिएको छैन।")
4.2 बहु अपवादहरूलाई एकसाथ प्रक्रिया गर्ने
यदि बहु अपवादहरूमा एउटै प्रक्रिया लागू गर्न चाहनुहुन्छ भने, एकैexcept
कथनमा अपवादहरूलाई एकसाथ समात्न सकिन्छ।try:
result = 10 / '10'
except (ZeroDivisionError, TypeError):
print("अवैध अपरेशन भयो।")
यसरी, विभिन्न अपवादहरूमा समान प्रक्रिया लागू गरेर, कोडलाई संक्षिप्त राख्न सकिन्छ।5. प्रयोगकर्ता-परिभाषित अपवादहरू र raise
कथनको प्रयोग
Python मा, मानक अपवादहरूले समेट्न नसक्ने विशेष परिस्थितिहरूको लागि, तपाईंले आफ्नै अपवाद परिभाषित गर्न सक्नुहुन्छ। यस प्रकारको कस्टम अपवादलाई raise
कथन प्रयोग गरेर जानबुझेर उत्पन्न गर्न सकिन्छ।5.1 raise
कथनले कस्टम अपवाद उत्पन्न गर्ने
उदाहरणका लागि, नकारात्मक मान पास गरिएमा त्रुटि उत्पन्न गर्ने कस्टम अपवादलाई तलको रूपमा परिभाषित गर्न सकिन्छ।def check_value(value):
if value < 0:
raise ValueError("नकारात्मक मान अनुमति छैन")
return value
try:
check_value(-10)
except ValueError as e:
print(e)
raise
कथन प्रयोग गरेर, त्रुटिको उत्पत्ति नियन्त्रण गर्न, उपयुक्त त्रुटि सन्देश देखाउन सकिन्छ।6. सारांश र उत्तम अभ्यासहरू
अपवाद ह्यान्डलिंग Python कार्यक्रमलाई अझ बलियो र सुरक्षित बनाउने अनिवार्य कार्य हो। तल, अपवाद ह्यान्डलिंग गर्दा अनुसरण गर्नुपर्ने उत्तम अभ्यासहरू संकलन गरिएको छ।- विशिष्ट अपवादहरू समात्नुहोस्: अपवाद समात्दा सकेसम्म विशिष्ट त्रुटि प्रकार निर्दिष्ट गर्नुहोस्, र सामान्य
Exception
को दुरुपयोग नगर्नुहोस्। यसले अनपेक्षित अपवादहरूलाई प्रभावकारी रूपमा ह्यान्डल गर्न मद्दत गर्छ। - संसाधन व्यवस्थापनलाई कडाइका साथ गर्नुहोस्: फाइल वा नेटवर्क जडान जस्ता संसाधनहरूलाई, अनिवार्य रूपमा
finally
ब्लकमा सफा गर्ने प्रक्रिया गर्नु सिफारिस गरिन्छ। - त्रुटि सन्देशलाई स्पष्ट बनाउनुहोस्: प्रयोगकर्तालाई त्रुटि सन्देश देखाउँदा, समस्याको कारण स्पष्ट गर्नुहोस्, र कसरी समाधान गर्ने भन्ने जानकारी दिन प्रयास गर्नुहोस्।