हममें से हर व्यक्ति को अपने जैविक माता-पिता से DNA के रूप में जानी जाने वाली रासायनिक सूचनाओं का एक समूह विरासत में मिलता है, जो तय करता है कि हमारा शरीर किस तरह बनता है। ज्ञात सारा जीवन DNA पर निर्भर है!
ध्यान दें: इस अभ्यास को पूरा करने के लिए आपको न्यूक्लियोटाइड या DNA के बारे में कुछ भी समझने की ज़रूरत नहीं है।
DNA अन्य रसायनों की एक लंबी शृंखला है, और इनमें सबसे महत्वपूर्ण हैं चार न्यूक्लियोटाइड: एडेनीन, साइटोसीन, ग्वानीन और थाइमीन। DNA की एक अकेली शृंखला में इन चार न्यूक्लियोटाइड की अरबों प्रतियाँ हो सकती हैं, और यह बहुत मायने रखता है कि वे किस क्रम में आती हैं! DNA के किसी हिस्से में इन न्यूक्लियोटाइड के इसी क्रम को हम "DNA सीक्वेंस" कहते हैं।
हम एक DNA सीक्वेंस को इन चार न्यूक्लियोटाइड के एक क्रमबद्ध संग्रह के रूप में दर्शाते हैं, और ऐसा करने का एक आम तरीका है अक्षरों की एक स्ट्रिंग, जैसे छह न्यूक्लियोटाइड वाले DNA सीक्वेंस के लिए "ATTACG"। यहाँ 'A' का मतलब एडेनीन, 'C' का साइटोसीन, 'G' का ग्वानीन और 'T' का थाइमीन है।
आपको एक ऐसी स्ट्रिंग दी जाएगी जो एक DNA सीक्वेंस को दर्शाती है। गिनिए कि हर न्यूक्लियोटाइड कितनी बार आता है। अगर स्ट्रिंग में A, C, G या T के अलावा कोई और अक्षर है, तो वह अमान्य है और आपको एरर का संकेत देना चाहिए।
उदाहरण के लिए:
"GATTACA" -> 'A': 3, 'C': 1, 'G': 1, 'T': 2
"INVALID" -> error
कभी-कभी कोड चलते समय ऐसी अनपेक्षित समस्याएँ सामने आती हैं जिन्हें संभालना पड़ता है। Dart में आप इन स्थितियों को संभालने के लिए एक्सेप्शन का उपयोग कर सकते हैं।
Dart में एक्सेप्शन फेंकने के लिए throw कीवर्ड लिखिए और उसके बाद उस एक्सेप्शन का इंस्टेंस दीजिए जिसे आप फेंकना चाहते हैं। उदाहरण के लिए, throw Exception() बेस Exception टाइप का एक इंस्टेंस फेंकता है।
इस अभ्यास में आपको InvalidNucleotideException नाम का एक कस्टम एक्सेप्शन बनाना है। यह एक्सेप्शन तब फेंका जाना चाहिए जब कोई अमान्य न्यूक्लियोटाइड सामने आए। टेस्ट सूट सिर्फ इतना जाँचता है कि InvalidNucleotideException का एक इंस्टेंस फेंका गया हो, इसलिए आप जैसा ठीक समझें वैसा इसे लागू कर सकते हैं, बस उसे सही तरीके से फेंकना ज़रूरी है।
Dart में एक्सेप्शन के बारे में अधिक जानकारी के लिए आप एक्सेप्शन का दस्तावेज़ देख सकते हैं। कस्टम एक्सेप्शन Exception इंटरफ़ेस को लागू करके बनाए जा सकते हैं।