Python अपवाद ह्यान्डलिंग मार्गदर्शिका | प्रभावकारी त्रुटि समाधान

目次

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 ब्लकमा सफा गर्ने प्रक्रिया गर्नु सिफारिस गरिन्छ।
  • त्रुटि सन्देशलाई स्पष्ट बनाउनुहोस्: प्रयोगकर्तालाई त्रुटि सन्देश देखाउँदा, समस्याको कारण स्पष्ट गर्नुहोस्, र कसरी समाधान गर्ने भन्ने जानकारी दिन प्रयास गर्नुहोस्।
उचित अपवाद ह्यान्डलिंग लागू गरेर, कार्यक्रमको विश्वसनीयता बढाउन सकिन्छ, र त्रुटि आए पनि प्रयोगकर्तालाई असुविधा नदिई समाधान गर्न सक्ने कोड लेख्न सकिन्छ।
RUNTEQ(ランテック)|超実戦型エンジニア育成スクール