अलग-अलग तरह की एरर हैंडलिंग और रिसोर्स प्रबंधन लागू कीजिए।
प्रोग्रामिंग में एरर संभालना और एरर होने पर भी रिसोर्स बंद करना एक ज़रूरी बात है।
इस अभ्यास में आपको कई तरह के एरर संभालने हैं। चूँकि हर प्रोग्रामिंग भाषा में एरर संभालने का तरीका थोड़ा अलग होता है, इसलिए यह जानने के लिए कि वास्तव में क्या चाहिए, आपको अपने ट्रैक के टेस्ट देखने होंगे।
अगर आप Go के एरर या पैनिक के लिए नए हैं, तो हमारा सुझाव है कि पहले संदर्भ के लिए इन विषयों का दस्तावेज़ पढ़ लीजिए।
इस अभ्यास में आपको एक फंक्शन Use(opener ResourceOpener, input string) error बनाना होगा। यह फंक्शन एक रिसोर्स खोलता है, उस रिसोर्स पर Frob(input) कॉल करता है, और फिर हर हाल में उस रिसोर्स को बंद कर देता है। आपके फंक्शन को एरर और पैनिक ठीक से संभालने चाहिए।
ResourceOpener opener एक फंक्शन होगा जिसे आप रिसोर्स "खोलने" की कोशिश में सीधे opener() कॉल करके चला सकते हैं। यह Go के प्रचलित तरीके से एक Resource और एक एरर वैल्यू लौटाता है:
Resource, ResourceOpener, FrobError और TransientError की परिभाषाएँ common.go फाइल में देखिए। आप अपना हल उसी पैकेज में लिखेंगे जिसमें common.go और error_handling_test.go हैं: "erratum"। इससे ये टाइप आपके हल में इस्तेमाल के लिए उपलब्ध हो जाएँगे।
आपके Use फंक्शन में कुछ जगहें ऐसी हैं जहाँ एरर आ सकती है:
Use में पहले पैरामीटर के रूप में दिए गए ResourceOpener फंक्शन को कॉल करने पर यह TransientError टाइप की एरर के साथ विफल हो सकता है। ऐसा हो तो रिसोर्स खोलने की कोशिश करते रहिए। अगर यह किसी और तरह की एरर है, तो उसे अपने Use फंक्शन से लौटा दीजिए।
ResourceOpener फंक्शन से मिले Resource पर Frob फंक्शन कॉल करने से यह FrobError (या किसी और टाइप की एरर) के साथ पैनिक कर सकता है। अगर यह सचमुच FrobError है, तो आपको उस रिसोर्स का Defrob फंक्शन कॉल करना होगा और उसके लिए Defrob फंक्शन के इनपुट के रूप में पैनिक हुई FrobError के .defrobTag वेरिएबल का इस्तेमाल कीजिए। किसी भी हाल में Use को वह एरर लौटानी चाहिए।
ध्यान दीजिए: अगर Resource सफलतापूर्वक खुल गया है, तो किसी भी हाल में उसका Close फंक्शन ठीक एक बार कॉल करना न भूलिए (चाहे एरर आ चुकी हों)।
किसी खास एरर टाइप की जाँच टाइप असर्शन से की जा सकती है। पैनिक से उबरने के बाद एरर की जानकारी लौटाने का एक उपयोगी तरीका नामित रिटर्न वैल्यू भी है, इसलिए उन्हें भी देखना पड़ सकता है।
Exercism पर साइन अप कीजिए और Go को 34 कॉन्सेप्ट165 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।