नेपाली नेपालीDOCS
GitHub

अपवादहरू

प्रोग्राम चल्दा त्रुटि हुन सक्छ — फाइल नभेटिनु, गलत मान, विभाजन-शून्य। अपवाद व्यवस्थापनले कार्यक्रम झर्न नदिई त्रुटि समात्ने उपाय दिन्छ।

१. अपवाद के हो?

सामान्य बहावको बाहिर घटेको कुरा — "अपवाद" (exception)। कुनै कार्य असफल भयो भने भाषाले त्रुटि फाल्छ (throws)। फालेको त्रुटि नसमात्दा कार्यक्रम रोकिन्छ:

राख सङ्ख्या = "abc"
राख मान = सङ्ख्या प्रकार पूर्णाङ्क   # "abc" संख्या होइन → त्रुटि!

यस्तोबाट बच्न त्रुटिलाई परीक्षण ... त्रुटि_समात ले समात्न सकिन्छ।

२. परीक्षण र त्रुटि_समात

परीक्षण भित्र जोखिमपूर्ण कोड, त्रुटि_समात भित्र त्रुटि भएपछि चल्ने कोड:

परीक्षण
    राख मान = "abc" प्रकार पूर्णाङ्क
    लेख "मान: " + मान
त्रुटि_समात
    लेख "त्रुटि भयो — सङ्ख्या पढ्न सकिएन।"
अन्त्य

यहाँ रूपान्तरण असफल भए पनि कार्यक्रम रोकिँदैन, बरु त्रुटि_समात ब्लक चल्छ।

३. त्रुटि सन्देश प्रयोग

त्रुटिको विवरण चाहिए त्रुटि_समात पछि एक चर लेख्नुहोस्:

परीक्षण
    राख भागफल = १० / ०
त्रुटि_समात त्रुटि
    लेख "हो भयो: " + त्रुटि
अन्त्य

चर त्रुटि को नाम तपाईंले चुन्नुहोस् — त्रुटि_समात त्रुटि, त्रुटि_समात समस्या, जे उपयुक्त।

४. फाल (Throw)

तपाईं आफैं पनि त्रुटि फाल्न सक्नुहुन्छ — फाल <सन्देश>:

कार्य वर्ग_अनुसार(पूर्णाङ्क अङ्क) -> पाठ
    यदि अङ्क < ० वा अङ्क > १००
        फाल "अङ्क ० देखि १०० बीच हुनुपर्छ"
    अन्त्य

    यदि अङ्क >= ९०
        फर्काऊ "उत्कृष्ट"
    नत्र यदि अङ्क >= ७०
        फर्काऊ "राम्रो"
    नत्र
        फर्काऊ "प्रयास गर्नुहोस्"
    अन्त्य
अन्त्य

परीक्षण
    लेख वर्ग_अनुसार(१५०)
त्रुटि_समात त्रुटि
    लेख त्रुटि   # अङ्क ० देखि १०० बीच हुनुपर्छ
अन्त्य
किन फाल्ने? जाँचको नियम कार्य भित्रै रहन्छ — गलत मान भएका प्रयोगकर्ता/कार्यक्रमले सही सन्देश पाउँछ, र त्रुटि समात्नेले ठाउँ रोज्न सक्छ।

५. अन्तमा (Finally)

अन्तमा ब्लक जतिबेला पनि चल्छ — त्रुटि भए वा नभए। सफाइ (खोलेको फाइल बन्द, रिसोर्स छोड्ने) का लागि उत्तम:

परीक्षण
    राख मान = १० / २
    लेख "मान: " + मान
त्रुटि_समात त्रुटि
    लेख "केही गडबड भयो।"
अन्तमा
    लेख "यो सधैं चल्छ।"
अन्त्य
# आउटपुट:
# मान: ५
# यो सधैं चल्छ।

अन्तमा बिना त्रुटि_समात, वा त्रुटि_समात बिना अन्तमा — दुवै जोडी चाहिएन भने मिल्छ, तर परीक्षण बिना हुँदैन।

६. फाइल-त्रुटि उदाहरण

फाइल पढ्दा अस्तित्व नभएको फाइल → त्रुटि। समात्नुहोस्:

परीक्षण
    राख सामग्री = फाइल_पढ("कुरा.txt")
    लेख सामग्री
त्रुटि_समात त्रुटि
    लेख "फाइल खोल्न सकिएन: " + त्रुटि
अन्त्य

प्रयोगकर्ताले नाम गलत टाइप गरे पनि कार्यक्रम बन्द हुँदैन — मिल्दो सन्देश देखिन्छ।

७. फाइल_अस्तित्व सुरक्षा

कहिलेकाहीँ त्रुटि समात्नुभन्दा पहिले नै जाँच्नु राम्रो — फाइल_अस्तित्व ले फाइल छ/छैन बताउँछ:

यदि फाइल_अस्तित्व("कुरा.txt")
    लेख फाइल_पढ("कुरा.txt")
नत्र
    लेख "कुरा.txt भेटिएन। पहिले बनाउनुहोस्।"
अन्त्य
असल अभ्यास: योजना गर्न सकिने त्रुटि — पहिले जाँच (फाइल_अस्तित्व); अप्रत्याशित त्रुटि — परीक्षण/त्रुटि_समात। दुवै एकैसाथ पनि चल्छन्।

८. असल अभ्यास

  1. त्रुटि ठूलो दायरामा नसमात्नुहोस् — जति सानो ब्लक, उति स्पष्ट
  2. त्रुटि सन्देश खाली नराख्नुहोस् — फाल "सन्देश" भनेर के भयो भन्ने लेख्नुहोस्।
  3. त्रुटि_समात मा त्रुटि चर प्रयोग गर्नुहोस् — नत्र कारण थाहा हुँदैन।
  4. रिसोर्स छोड्न अन्तमा प्रयोग गर्नुहोस्।
  5. नियन्त्रण गर्न त्रुटि_समात प्रयोग नगर्नुहोस् — यो प्रवाह होइन, दुर्घटनाको व्यवस्थापन हो।