गोलंग में त्रुटियों को कैसे संभालें?

Golanga Mem Trutiyom Ko Kaise Sambhalem



गो एक लोकप्रिय प्रोग्रामिंग भाषा है जो अपनी प्रभावशीलता, गति और दक्षता के कारण लोकप्रियता में बढ़ी है। हालाँकि, विकास और निष्पादन चरणों के दौरान गलतियाँ हो सकती हैं, ठीक किसी अन्य प्रोग्रामिंग भाषा की तरह। अपने गो कार्यक्रमों की विश्वसनीयता और स्थिरता सुनिश्चित करने के लिए त्रुटियों को प्रभावी ढंग से संभालना आवश्यक है।

यह लेख गो में त्रुटियों के प्रबंधन के लिए कई विधियों और अनुशंसित प्रक्रियाओं की जाँच करेगा।







गोलंग में त्रुटियों को संभालें

गो में, आप कर सकते हैं त्रुटियों को संभालें नीचे बताए गए तरीकों से:



1: नया () फ़ंक्शन

गो भाषा प्रदान करती है नया() त्रुटियों को प्रबंधित करने का कार्य। बिल्ट-इन एरर पैकेज में उपलब्ध यह फंक्शन डेवलपर्स को उनके प्रोग्राम के लिए कस्टम एरर मैसेज बनाने में सक्षम बनाता है। का उपयोग करके नया() फ़ंक्शन, डेवलपर्स त्रुटियों को प्रभावी ढंग से संभाल सकते हैं और उपयोगकर्ताओं को सार्थक त्रुटि संदेश प्रदान कर सकते हैं।



मुख्य पैकेज

आयात 'गलतियाँ'
आयात 'एफएमटी'

फंक चेक ( नाम का तार ) गलती {
एन त्रुटि: = त्रुटियां। नया ( 'अमान्य नाम' )
अगर नाम ! = 'लिनक्स' {
वापस करना n त्रुटि
}
वापस करना शून्य
}
func main ( ) {
नाम := 'लिनक्स'
गलती: = जांचें ( नाम )
अगर ग़लती होना ! = शून्य {
fmt.Println ( ग़लती होना )
} अन्य {
fmt.Println ( 'मान्य नाम' )
}
}





उपरोक्त कोड का उपयोग करता है नया() checkName यह देखने के लिए कार्य करें कि क्या string लिनक्स दिए गए नाम से मेल खाता है। समारोह संदेश के साथ एक त्रुटि पैदा करता है अमान्य नाम अगर नाम नहीं है लिनक्स . फ़ंक्शन यह दिखाने के लिए शून्य लौटाता है कि यदि नाम के बराबर है तो कोई त्रुटि नहीं थी लिनक्स .

नाम चर पर सेट है लिनक्स मुख्य समारोह के कॉल में checkName फ़ंक्शन, जो तर्क के रूप में नाम चर भी लेता है। मुख्य फ़ंक्शन त्रुटि संदेश प्रिंट करता है यदि checkName समारोह एक त्रुटि देता है। मुख्य कार्य प्रिंट करता है मान्य नाम अगर checkName फ़ंक्शन शून्य लौटाता है।



उत्पादन

2: एररफ () फ़ंक्शन

एररफ () गो में फ़ंक्शन हमें त्रुटियों को भी संभालने की अनुमति देता है। एररफ () हमें त्रुटि संदेश को स्वरूपित करने का विकल्प देता है। fmt पैकेज आयात करके, विकासकर्ता अपनी आवश्यकताओं के अनुरूप त्रुटि संदेशों को अनुकूलित करने के लिए इसका उपयोग कर सकते हैं। एररफ () गो में त्रुटियों को प्रबंधित करने और संप्रेषित करने की दक्षता को सुव्यवस्थित और बेहतर बनाता है।

मुख्य पैकेज
आयात 'एफएमटी'

func div ( एन 1, एन 2 यू ) गलती {

अगर एन 2 == 0 {
वापस करना fmt.त्रुटिf ( '%d / %d \एन किसी संख्या को शून्य से विभाजित नहीं कर सकते' , एन 1, एन 2 )
}
वापस करना शून्य
}
func main ( ) {
त्रुटि: = div ( 42 , 0 )
अगर ग़लती होना ! = शून्य {
fmt.Printf ( 'त्रुटि: %s' , गलती )
} अन्य {
fmt.Println ( 'वैध विभाजन' )
}
}

उपरोक्त कोड में, डिव फ़ंक्शन दो पूर्णांक इनपुट, n1 और n2 स्वीकार करता है, और यदि n2 शून्य है, तो यह एक त्रुटि उत्पन्न करता है। फ़ंक्शन एक संदेश के साथ एक त्रुटि उत्पन्न करता है जिसमें n1 और n2 के मान होते हैं यदि n2 शून्य है। फ़ंक्शन यह दिखाने के लिए शून्य लौटाता है कि यदि n2 शून्य नहीं है तो कोई त्रुटि नहीं थी।

जब मुख्य फ़ंक्शन 42 और 0 के मान के साथ div चलाता है, तो त्रुटि जो div लौटाती है, त्रुटि चर में सहेजी जाती है। यदि div फ़ंक्शन त्रुटि देता है तो त्रुटि संदेश प्रदर्शित करने के लिए मुख्य फ़ंक्शन fmt.Printf का उपयोग करता है। मुख्य कार्य प्रिंट करता है मान्य प्रभाग यदि div फ़ंक्शन शून्य लौटाता है।

उत्पादन

3: स्पष्ट त्रुटि प्रबंधन

गो अन्य प्रोग्रामिंग भाषाओं की तुलना में स्पष्ट त्रुटि प्रबंधन को प्रोत्साहित करता है, जो अक्सर अपवादों पर भरोसा करते हैं। यह दृष्टिकोण डेवलपर्स को ट्राइ-कैच ब्लॉक पर भरोसा करने के बजाय स्पष्ट रूप से त्रुटियों की जांच करने के लिए if स्टेटमेंट्स का उपयोग करने के लिए प्रोत्साहित करता है। ऐसा करने से, त्रुटियों के पाए जाने और ठीक से ठीक होने की संभावना अधिक होती है। इसे सुविधाजनक बनाने के लिए, गो प्रदान करता है अगर गलती! = शून्य बयान, जो डेवलपर्स को फ़ंक्शन निष्पादित करने के बाद त्रुटियों की जांच करने और परिणाम के आधार पर उचित कार्रवाई करने की अनुमति देता है। स्पष्ट त्रुटि से निपटने के साथ, गो त्रुटि प्रबंधन के लिए अधिक संरचित और विश्वसनीय दृष्टिकोण प्रदान करता है।

मुख्य पैकेज
आयात 'एफएमटी'

फंक डिवाइड ( ए, बी फ्लोट64 ) ( फ्लोट64, त्रुटि ) {
अगर बी == 0 {
वापस करना 0 , fmt.त्रुटि f ( 'शून्य से विभाजित नहीं किया जा सकता' )
}
वापस करना / बी, शून्य
}
func main ( ) {
नतीजा, गलती: = विभाजित करें ( 13 , 3 )
अगर ग़लती होना ! = शून्य {
fmt.Printf ( 'त्रुटि: %v \एन ' , गलती )
} अन्य {
fmt.Printf ( 'परिणाम:% च \एन ' , परिणाम )
}
परिणाम, त्रुटि = विभाजन ( 23 , 0 )
अगर ग़लती होना ! = शून्य {
fmt.Printf ( 'त्रुटि: %v \एन ' , गलती )
} अन्य {
fmt.Printf ( 'परिणाम:% च \एन ' , परिणाम )
}
}

इस उदाहरण में, डिवाइड फ़ंक्शन का उपयोग दो मानों को विभाजित करने के लिए किया जाता है। आउटपुट ऐसा करने का नतीजा है। यदि दूसरी संख्या 0 है, तो फ़ंक्शन एक विशिष्ट त्रुटि संदेश के साथ एक त्रुटि उत्पन्न करता है।

विभाजन को मुख्य कार्य में दो बार कहा जाता है: एक बार वैध इनपुट के साथ और एक बार अमान्य इनपुट के साथ। चोर त्रुटि! = शून्य कथन का उपयोग यह निर्धारित करने के लिए किया जाता है कि प्रत्येक बार विभाजन फ़ंक्शन का उपयोग करने पर कोई त्रुटि हुई या नहीं। यदि कोई होता है तो एक त्रुटि संदेश मुद्रित होता है। यदि नहीं, तो परिणाम मुद्रित होता है।

उत्पादन

4: डिफरें, पैनिक और रिकवर करें

गोलंग भी प्रदान करता है आस्थगित करें स्टेटमेंट, जिसका उपयोग किसी प्रोग्राम या कोड के विशिष्ट ब्लॉक के पूरा होने के बाद किसी फ़ंक्शन को निष्पादित करने के लिए किया जाता है। आस्थगित करें बयान अक्सर के साथ संयोजन में प्रयोग किया जाता है वापस पाना रनटाइम पैनिक त्रुटियों को पकड़ने और पुनर्प्राप्त करने के लिए कार्य। जब रनटाइम पैनिक एरर होता है, तो वापस पाना फ़ंक्शन का उपयोग त्रुटि स्थिति से पुनर्प्राप्त करने और प्रोग्राम को क्रैश होने से रोकने के लिए किया जाता है। यह क्लीन-अप कार्यों जैसे फाइलों को बंद करने, नेटवर्क कनेक्शन बंद करने या संसाधनों को जारी करने के लिए उपयोगी है। इन कार्यों को स्थगित करके, आप यह सुनिश्चित करते हैं कि त्रुटि होने पर भी वे निष्पादित हों।

घबड़ाहट जब कोई अनपेक्षित त्रुटि होती है, तो प्रोग्राम के सामान्य निष्पादन को रोकने के लिए उपयोग किया जाता है वापस पाना आतंक को संभालने और कार्यक्रम के निष्पादन को जारी रखने के लिए उपयोग किया जाता है।

मुख्य पैकेज

आयात 'एफएमटी'

func पुनर्प्राप्ति फ्रॉम पैनिक ( ) {
अगर र := ठीक हो जाना ( ) ; आर ! = शून्य {
fmt.Println ( 'आतंक से बरामद:' , आर )
}
}
फंक डिवाइड ( एक्स, वाई फ्लोट64 ) फ्लोट64 {
डिफर रिकवरीफ्रॉमपैनिक ( )

अगर और == 0 {
घबड़ाहट ( 'शून्य से विभाजित नहीं किया जा सकता' )
}
वापस करना एक्स / और
}
func main ( ) {
fmt.Println ( विभाजित करना ( 13 , 3 ) )
fmt.Println ( विभाजित करना ( 23 , 0 ) )
}

उपरोक्त कोड में, डिवाइड फ़ंक्शन का उपयोग दो फ़्लोटिंग-पॉइंट मानों को विभाजित करने के लिए किया जाता है। आउटपुट ऐसा करने का नतीजा है। यदि दूसरी संख्या शून्य है तो एक अनुकूलित त्रुटि संदेश फ़ंक्शन द्वारा आउटपुट होता है। डिफर स्टेटमेंट का उपयोग आह्वान करने के लिए किया जाता है पुनर्प्राप्त करें समारोह। पुनर्प्राप्त करें फ़ंक्शन एक पैनिक का पता लगाएगा जो डिवीजन फ़ंक्शन के अंदर हुआ था और अगर ऐसा हुआ तो एक त्रुटि प्रिंट करेगा।

विभाजन को मुख्य कार्य में दो बार कहा जाता है: एक बार वैध इनपुट के साथ और एक बार अमान्य इनपुट के साथ। fmt.Println फ़ंक्शन फ़ंक्शन के आउटपुट को प्रत्येक बार विभाजन फ़ंक्शन चलाने पर प्रिंट करता है। पुनर्प्राप्त करें यदि ऐसा होता है तो फ़ंक्शन पैनिक का पता लगाएगा और यदि ऐसा होता है तो एक त्रुटि प्रिंट करेगा।

उत्पादन

त्रुटि का पता लगाने के बाद, कार्यक्रम घबराहट से उबर गया और चलता रहा। हालाँकि, कोड घबरा गया और विभाजित करने के लिए दूसरी कॉल पर कोई मान वापस नहीं किया, यही वजह है कि यह शून्य लौटा।

5: लपेटने में त्रुटि

गो में एक फीचर भी शामिल है जिसे जाना जाता है लपेटने में त्रुटि , जो आपको त्रुटि संदेश में अतिरिक्त संदर्भ जोड़ने की अनुमति देता है। यह समस्याओं को रिकॉर्ड करने या त्रुटि संदेशों में और विवरण प्रदान करने में सहायक है। यह एक त्रुटि प्रकार बनाकर पूरा किया जा सकता है जो मूल त्रुटि और अतिरिक्त संदर्भ को एम्बेड करता है।

मुख्य पैकेज

आयात 'गलतियाँ'
आयात 'एफएमटी'

func main ( ) {
अगर गलती: = बार ( ) ; ग़लती होना ! = शून्य {
fmt.Println ( ग़लती होना )
}
}
फंक डिवाइड ( ए, बी फ्लोट64 ) ( फ्लोट64, त्रुटि ) {
अगर बी == 0 {
वापस करना 0 , त्रुटियाँ।नया ( 'शून्य से विभाजन' )
}
वापस करना / बी, शून्य
}
फंक बार ( ) ( त्रुटि त्रुटि ) {
_, गलती = विभाजित करें ( 42 , 0 )
अगर ग़लती होना ! = शून्य {
वापस करना fmt.त्रुटिf ( 'गणना करने में विफल: %w' , गलती )
}
वापस करना शून्य
}

उपरोक्त कोड में, विभाजित फ़ंक्शन इस उदाहरण में दो संख्याओं के अनुपात की गणना करता है और यदि दूसरा मान शून्य है तो एक त्रुटि फेंकता है। बार फ़ंक्शन डिवाइड फ़ंक्शन को कॉल करता है और फिर उस त्रुटि को लपेटता है विभाजित करना fmt.Errorf फ़ंक्शन का उपयोग करके मूल त्रुटि संदेश शामिल करने वाले संदेश के साथ एक नई त्रुटि में वापस आता है। बार फ़ंक्शन को मुख्य फ़ंक्शन द्वारा कॉल किया जाता है, जो किसी भी त्रुटि को वापस प्रिंट करता है।

उत्पादन

निष्कर्ष

सॉफ्टवेयर विकास शामिल होना चाहिए त्रुटि प्रबंधन , और गोलंग में ऐसा करने के लिए विभिन्न अंतर्निहित कार्य और विधियाँ हैं। ये तंत्र डेवलपर्स को त्रुटियों को पकड़ने और पुनर्प्राप्त करने, प्रोग्राम क्रैश को रोकने और अंतिम उपयोगकर्ताओं को सूचनात्मक त्रुटि संदेश प्रदान करने की अनुमति देते हैं। इन एरर-हैंडलिंग मैकेनिज्म का प्रभावी ढंग से उपयोग करके, डेवलपर्स मजबूत, विश्वसनीय और कुशल सॉफ़्टवेयर एप्लिकेशन बना सकते हैं।