अपवादहरू
प्रोग्राम चल्दा त्रुटि हुन सक्छ — फाइल नभेटिनु, गलत मान, विभाजन-शून्य। अपवाद व्यवस्थापनले कार्यक्रम झर्न नदिई त्रुटि समात्ने उपाय दिन्छ।
१. अपवाद के हो?
सामान्य बहावको बाहिर घटेको कुरा — "अपवाद" (exception)। कुनै कार्य असफल भयो भने भाषाले त्रुटि फाल्छ (throws)। फालेको त्रुटि नसमात्दा कार्यक्रम रोकिन्छ:
राख सङ्ख्या = "abc"
राख मान = सङ्ख्या प्रकार पूर्णाङ्क # "abc" संख्या होइन → त्रुटि!
यस्तोबाट बच्न त्रुटिलाई परीक्षण ... त्रुटि_समात ले समात्न सकिन्छ।
२. परीक्षण र त्रुटि_समात
परीक्षण भित्र जोखिमपूर्ण कोड, त्रुटि_समात भित्र त्रुटि भएपछि चल्ने कोड:
परीक्षण
राख मान = "abc" प्रकार पूर्णाङ्क
लेख "मान: " + मान
त्रुटि_समात
लेख "त्रुटि भयो — सङ्ख्या पढ्न सकिएन।"
अन्त्य
यहाँ रूपान्तरण असफल भए पनि कार्यक्रम रोकिँदैन, बरु त्रुटि_समात ब्लक चल्छ।
३. त्रुटि सन्देश प्रयोग
त्रुटिको विवरण चाहिए त्रुटि_समात पछि एक चर लेख्नुहोस्:
परीक्षण
राख भागफल = १० / ०
त्रुटि_समात त्रुटि
लेख "हो भयो: " + त्रुटि
अन्त्य
चर त्रुटि को नाम तपाईंले चुन्नुहोस् — त्रुटि_समात त्रुटि, त्रुटि_समात समस्या, जे उपयुक्त।
४. फाल (Throw)
तपाईं आफैं पनि त्रुटि फाल्न सक्नुहुन्छ — फाल <सन्देश>:
कार्य वर्ग_अनुसार(पूर्णाङ्क अङ्क) -> पाठ
यदि अङ्क < ० वा अङ्क > १००
फाल "अङ्क ० देखि १०० बीच हुनुपर्छ"
अन्त्य
यदि अङ्क >= ९०
फर्काऊ "उत्कृष्ट"
नत्र यदि अङ्क >= ७०
फर्काऊ "राम्रो"
नत्र
फर्काऊ "प्रयास गर्नुहोस्"
अन्त्य
अन्त्य
परीक्षण
लेख वर्ग_अनुसार(१५०)
त्रुटि_समात त्रुटि
लेख त्रुटि # अङ्क ० देखि १०० बीच हुनुपर्छ
अन्त्य
कार्य भित्रै रहन्छ — गलत मान भएका प्रयोगकर्ता/कार्यक्रमले सही सन्देश पाउँछ, र त्रुटि समात्नेले ठाउँ रोज्न सक्छ।
५. अन्तमा (Finally)
अन्तमा ब्लक जतिबेला पनि चल्छ — त्रुटि भए वा नभए। सफाइ (खोलेको फाइल बन्द, रिसोर्स छोड्ने) का लागि उत्तम:
परीक्षण
राख मान = १० / २
लेख "मान: " + मान
त्रुटि_समात त्रुटि
लेख "केही गडबड भयो।"
अन्तमा
लेख "यो सधैं चल्छ।"
अन्त्य
# आउटपुट:
# मान: ५
# यो सधैं चल्छ।
अन्तमा बिना त्रुटि_समात, वा त्रुटि_समात बिना अन्तमा — दुवै जोडी चाहिएन भने मिल्छ, तर परीक्षण बिना हुँदैन।
६. फाइल-त्रुटि उदाहरण
फाइल पढ्दा अस्तित्व नभएको फाइल → त्रुटि। समात्नुहोस्:
परीक्षण
राख सामग्री = फाइल_पढ("कुरा.txt")
लेख सामग्री
त्रुटि_समात त्रुटि
लेख "फाइल खोल्न सकिएन: " + त्रुटि
अन्त्य
प्रयोगकर्ताले नाम गलत टाइप गरे पनि कार्यक्रम बन्द हुँदैन — मिल्दो सन्देश देखिन्छ।
७. फाइल_अस्तित्व सुरक्षा
कहिलेकाहीँ त्रुटि समात्नुभन्दा पहिले नै जाँच्नु राम्रो — फाइल_अस्तित्व ले फाइल छ/छैन बताउँछ:
यदि फाइल_अस्तित्व("कुरा.txt")
लेख फाइल_पढ("कुरा.txt")
नत्र
लेख "कुरा.txt भेटिएन। पहिले बनाउनुहोस्।"
अन्त्य
फाइल_अस्तित्व); अप्रत्याशित त्रुटि — परीक्षण/त्रुटि_समात। दुवै एकैसाथ पनि चल्छन्।
८. असल अभ्यास
- त्रुटि ठूलो दायरामा नसमात्नुहोस् — जति सानो ब्लक, उति स्पष्ट।
- त्रुटि सन्देश खाली नराख्नुहोस् —
फाल "सन्देश"भनेर के भयो भन्ने लेख्नुहोस्। त्रुटि_समातमा त्रुटि चर प्रयोग गर्नुहोस् — नत्र कारण थाहा हुँदैन।- रिसोर्स छोड्न
अन्तमाप्रयोग गर्नुहोस्। - नियन्त्रण गर्न
त्रुटि_समातप्रयोग नगर्नुहोस् — यो प्रवाह होइन, दुर्घटनाको व्यवस्थापन हो।