त्रुटियों को प्रबंधित करने का तरीका जानना प्रोग्रामिंग का महत्वपूर्ण हिस्सा है। यह ट्यूटोरियल आपको जावास्क्रिप्ट में त्रुटि प्रबंधन का आसान परिचय देगा। आप दो प्रकार की त्रुटियों और प्रत्येक को कैसे संभालना है, इसके बारे में जानेंगे। आप यह भी सीखेंगे कि कैसे उपयोग करना है |_+_| और |_+_| आपके कोड को सुरक्षित और बहुत कुछ बनाने के लिए कथन।
दो मुख्य प्रकार की त्रुटियां
जब जावास्क्रिप्ट में त्रुटि प्रबंधन की बात आती है तो दो प्रकार की त्रुटियां होती हैं जिन पर आप ठोकर खा सकते हैं। पहले प्रकार की त्रुटियां सिंटैक्स त्रुटियां हैं। दूसरा प्रकार रनटाइम त्रुटियां हैं।
सिंटैक्स त्रुटियां
सिंटैक्स त्रुटियों को पार्सिंग त्रुटियां भी कहा जाता है। यह त्रुटि तब होती है जब जावास्क्रिप्ट पार्सर आपके कोड की व्याख्या करता है। जब इन त्रुटियों में से कोई एक होता है तो यह केवल उसी थ्रेड में कोड को प्रभावित करता है। शेष कोड अप्रभावित छोड़ दिया गया है। वाक्य रचना त्रुटि का एक उदाहरण कोष्ठक या कोष्ठक को खोलना या बंद करना भुलाया जा सकता है।
एक अन्य उदाहरण वस्तु में कोमा या बृहदान्त्र का गायब होना हो सकता है। इनमें से कोई भी त्रुटि सिंटैक्स को अमान्य कर देगी और आपके प्रोग्राम को तोड़ देगी। इस प्रकार की त्रुटियों से बचने के कुछ उपाय हैं। एक आपके कोड की जांच कर रहा है और उन्हें ढूंढ रहा है। यह प्रभावी नहीं है और इसमें बहुत समय लग सकता है।
एक अन्य विकल्प कुछ टूल या आईडीई प्लगइन का उपयोग कर रहा है। ये उपकरण स्वचालित रूप से आपके कोड को स्कैन करेंगे और आपके लिए किसी भी सिंटैक्स समस्या की तलाश करेंगे। सिंटैक्स त्रुटियों को पकड़ने में आपकी सहायता करने वाले तीन सबसे लोकप्रिय टूल हैं: गोफन , जशिन्तो तथा जेएसलिंट . एस्लिंट मेरा पसंदीदा है। मैं अपनी लगभग सभी परियोजनाओं में उपयोग करता हूं।
ये उपकरण बहुत लोकप्रिय हैं, और डेवलपर्स दोहराए जाने वाले कार्यों को पसंद नहीं करते हैं। इससे यह संभावना है कि इनमें से प्रत्येक उपकरण के लिए एक प्लगइन है जिसे आप आईडीई में स्थापित कर सकते हैं जिसका आप उपयोग कर रहे हैं। यदि आप कुछ पाते हैं तो मैं इसे स्थापित करने और इसका उपयोग करने की अत्यधिक अनुशंसा करता हूं। यह आपको बहुत सारे सिरदर्द से बचा सकता है।
रनटाइम त्रुटियां
दूसरी प्रकार की त्रुटियां रनटाइम त्रुटियां हैं। इन त्रुटियों को अपवाद भी कहा जाता है। ये त्रुटियां आपके कोड के निष्पादन के दौरान होती हैं, जब आप इसे चलाते हैं। एक सरल उदाहरण एक ऐसी विधि को कॉल करना हो सकता है जो मौजूद नहीं है। कोई अन्य संख्या के बजाय किसी फ़ंक्शन में स्ट्रिंग पास कर सकता है, या दूसरी तरफ।
महत्वपूर्ण यह है कि इनमें से प्रत्येक त्रुटि जावास्क्रिप्ट की दृष्टि से मान्य है। हां, आप कुछ चर या फ़ंक्शन नाम की गलत वर्तनी कर सकते हैं। हालाँकि, सिंटैक्स स्वयं अभी भी मान्य है। कोई लापता कोलन या ब्रैकेट नहीं हैं। यदि यह सत्य है तो जावास्क्रिप्ट आपके कोड को संकलित करने देगा। आप इन त्रुटियों में तभी भाग लेते हैं जब आप अपना कोड चलाते हैं।
यह वह भी है जो रनटाइम त्रुटियों को संभालना अधिक कठिन बनाता है। यही कारण है कि लिखना और चलाना भी एक बहुत अच्छा विचार हैइकाई परीक्षण. इसके अलावा, कोई प्लगइन नहीं है जो आपको इन त्रुटियों को होने से पहले पहचानने में मदद करेगा। खैर, यह आंशिक रूप से ही सच है। आप जावास्क्रिप्ट सुपरसेट का उपयोग कर सकते हैं, जैसे टाइपप्रति .
यदि आपके IDE में इनमें से किसी एक सुपरसेट का समर्थन है, तो यह आपको रनटाइम त्रुटियों का पता लगाने में मदद करेगा। उदाहरण के लिए, जब आप वीएस कोड में टाइपस्क्रिप्ट का उपयोग करते हैं तो यह आपको चेतावनी देगा कि जब कोई फ़ंक्शन या वेरिएबल आप उपयोग करना चाहते हैं तो वह अपरिभाषित है। यह उन विधियों और चरों का भी सुझाव देगा जिन्हें आपने अपना कोड लिखते समय पहले परिभाषित किया था।
इसके अलावा, कुछ जावास्क्रिप्ट बिल्ट-इन टूल्स हैं जो आपके लिए एरर हैंडलिंग को आसान बना देंगे। आइए एक नजर डालते हैं इन टूल्स पर।
एरर हैंडलिंग और ट्राई…कैच स्टेटमेंट
त्रुटि प्रबंधन के लिए पहला उपकरण है |_+_| बयान। यह कथन समान दिख सकता है |_+_| बयान। इसमें कोड के दो ब्लॉक भी होते हैं, जो घुंघराले ब्रेसिज़ से लिपटे होते हैं। हालांकि, पहले ब्लॉक से पहले कोई कोष्ठक नहीं है, |_+_| खंड मैथा। यह |_+_| ब्लॉक में वह कोड होता है जिसे आप चलाने का प्रयास करना चाहते हैं।
try...catch
उस ने कहा, आपके पूरे कोड को एक विशाल में परिभाषित करने की आवश्यकता नहीं है |_+_| खंड मैथा। इसके बजाय, आप |_+_| . में डालते हैं केवल वही ब्लॉक करें जिसे आप चलाना चाहते हैं। उदाहरण के लिए, मान लीजिए कि आप कुछ फ़ंक्शन घोषित करना चाहते हैं। आप इस फ़ंक्शन को |_+_| . के बाहर कहीं घोषित कर सकते हैं ब्लॉक, लेकिन आप इसके अंदर फ़ंक्शन का आह्वान करते हैं।
throw
पकड़
जब आप ऐसा करते हैं, |_+_| ब्लॉक उस फ़ंक्शन को कॉल करेगा। यदि आपका कार्य बिना किसी त्रुटि के चलता है तो कुछ नहीं होगा। अगर कुछ रनटाइम त्रुटियां हैं? यहीं है |_+_| ब्लॉक खेल में आता है। |_+_| ब्लॉक |_+_| जैसा दिखता है। एक अंतर यह है कि |_+_| . के बाद कोष्ठक हैं कीवर्ड और घुंघराले ब्रेस खोलने से पहले।
इन कोष्ठकों के अंदर एक पैरामीटर परिभाषित किया गया है। यह पैरामीटर एक त्रुटि वस्तु है। इस ऑब्जेक्ट में हुई त्रुटि के बारे में जानकारी है। इसमें त्रुटि का नाम, त्रुटि संदेश और वर्तमान कॉल स्टैक शामिल है। |_+_| ब्लॉक एक ऐसा स्थान है जहां आप परिभाषित करते हैं कि त्रुटि होने पर क्या करना है।
try...catch
|_+_| . के बाद कोष्ठक और त्रुटि वस्तु कीवर्ड, और घुंघराले ब्रेस खोलने से पहले, वैकल्पिक हैं। इसका उपयोग त्रुटि के बारे में जानकारी पास करने के लिए किया जाता है। यदि आप इन सूचनाओं का उपयोग नहीं करना चाहते हैं, तो आप कोष्ठक और त्रुटि वस्तु दोनों को छोड़ सकते हैं। |_+_| बयान अभी भी काम करेगा।
if...else
कोशिश करो, पकड़ो और नियंत्रित करो
अंदर कोड |_+_| कुछ रनटाइम त्रुटि होने पर ब्लॉक तुरंत निष्पादित होता है। यह याद रखना महत्वपूर्ण है। अगर कुछ कोड आप |_+_| . में निष्पादित करते हैं ब्लॉक एक त्रुटि की ओर जाता है जो किसी भी कोड का अनुसरण करता है, उसी के अंदर |_+_| ब्लॉक, निष्पादित नहीं किया जाएगा। |_+_| ब्लॉक स्वचालित रूप से नियंत्रण ग्रहण करेगा और त्रुटि को संसाधित करेगा।
try
कई कोशिशों का उपयोग करना… बयानों को पकड़ना
इसे ठीक करने का एक तरीका है। जावास्क्रिप्ट में, कितने की कोई सीमा नहीं है |_+_| कथन जिनका आप उपयोग कर सकते हैं। ऐसा कोई नियम भी नहीं है कि आपको अपने सभी कोड के लिए एक का उपयोग करना पड़े। यदि कुछ भी हो, तो आपको वास्तव में इसके विपरीत करना चाहिए। एकाधिक का उपयोग करना |_+_| कथन आपको त्रुटियों को अलग करने की अनुमति देता है और इसे आपके शेष कोड को प्रभावित नहीं करने देता है।
प्रतिक्रिया ऐप बनाएं एस्लिंट कॉन्फ़िगरेशन
यदि आप दोनों कार्यों को लागू करना चाहते हैं, तो आप जो सबसे आसान काम कर सकते हैं वह है दो |_+_| बयान। फिर, आप पहले स्टेटमेंट में एक फंक्शन और दूसरे में दूसरे फंक्शन को इनवाइट कर सकते हैं।
try
उदाहरण किसी भी संख्या में फ़ंक्शन, या कोड के साथ काम करेगा, जिसे आप लागू करना या निष्पादित करना चाहते हैं। आप दहाई या अधिक बना सकते हैं |_+_| एक विशिष्ट उपयोग के मामले को संभालने के लिए प्रत्येक कथन। फिर, कोई भी त्रुटि जो घटित होगी, वह आपके शेष कोड को प्रभावित नहीं करेगी, जिसे अन्य में लागू या निष्पादित किया गया है |_+_| बयान।
जैसा कि आप देख सकते हैं, |_+_| त्रुटि प्रबंधन के लिए कथन बहुत शक्तिशाली उपकरण है। यह आपको अपने कोड के टुकड़े चलाने की अनुमति देता है बिना इसे अन्य टुकड़ों, या आपके पूरे एप्लिकेशन को क्रैश किए बिना। उस ने कहा, और भी है।
आखिरकार
|_+_| कथन त्रुटि प्रबंधन को आसान बनाने में आपकी सहायता कर सकता है। हालाँकि, वहाँ भी है |_+_| ब्लॉक आप उपयोग कर सकते हैं। |_+_| ब्लॉक के अंदर कोड को आमंत्रित करता है। |_+_| त्रुटि होने पर आह्वान किया जाता है। |_+_| प्रत्येक के अंत में बुलाया जाता है |_+_| बयान।
महत्वपूर्ण बात यह है कि |_+_| सभी मामलों में बुलाया जाता है। इससे कोई फर्क नहीं पड़ता कि कोई त्रुटि है या नहीं। |_+_| आह्वान किया जाएगा। यह तब उपयोगी हो सकता है जब आप प्रत्येक ब्लॉक के अंत में कुछ करते हैं। |_+_| . का सिंटैक्स |_+_| के लिए सिंटैक्स के समान है।
वहाँ है |_+_| कर्ली ब्रेसिज़ के साथ लिपटा हुआ निष्पादित करने के लिए कोड के ब्लॉक के बाद कीवर्ड। कोई कोष्ठक नहीं है, यहाँ तक कि वैकल्पिक भी नहीं है।
try { // some code }
कुछ हद तक वैकल्पिक पकड़
अब तक, हमने हमेशा |_+_| . के सभी ब्लॉकों का उपयोग करके त्रुटि प्रबंधन किया है या |_+_| बयान। आपको एक बात पता होनी चाहिए कि |_+_| है, इसी तरह |_+_|, भी वैकल्पिक है। ऐसा कहने के बाद, इसका मतलब यह नहीं है कि इसे छोड़ना एक अच्छा विचार है।
जब आप |_+_| . को छोड़ देते हैं |_+_| . के निष्पादन के दौरान होने वाली किसी भी त्रुटि को रोकें ब्लॉक बाहर लीक हो जाएगा। बिना |_+_| ब्लॉक, ऐसा कुछ भी नहीं है जो किसी भी त्रुटि को पकड़ता है और उसे संसाधित करता है। तो, क्या आप इसे छोड़ सकते हैं? हां। आप केवल |_+_| . का ही उपयोग कर सकते हैं या |_+_|. दोनों काम करेंगे। हालांकि, कोई त्रुटि नहीं पकड़ी जाएगी।
try
कोशिश करें… कार्यों के अंदर बयान पकड़ो
पिछले सभी शो एरर हैंडलिंग सिंग |_+_| वैश्विक दायरे में, किसी भी कार्य के बाहर। इसका मतलब यह नहीं है |_+_| बयान वैश्विक दायरे तक ही सीमित है। यह नहीं। आप उदाहरण के लिए किसी फ़ंक्शन द्वारा बनाए गए वैश्विक दायरे या स्थानीय दायरे में उपयोग कर सकते हैं। यह उतना ही काम करेगा।
aws-ecr orb
try
त्रुटियां बनाना और फेंकना
त्रुटि प्रबंधन के लिए आप या तो अंतर्निहित जावास्क्रिप्ट त्रुटियों का उपयोग कर सकते हैं या आप स्वयं को परिभाषित कर सकते हैं। दोनों दृष्टिकोणों के साथ, आप |_+_| . का उपयोग करेंगे बयान। यह कथन उस मान को निर्दिष्ट करता है जिसे आप एक त्रुटि के रूप में फेंकना चाहते हैं। उदाहरण के तौर पर आपने इस कथन का प्रयोग |_+_| के अंदर ट्राई, कैच और कंट्रोल सेक्शन में किया है।
सरल त्रुटियाँ बनाना
आइए कस्टम त्रुटि बनाने के पहले तरीके पर एक नज़र डालें। यह एक बहुत ही सरल त्रुटि होगी। आप इसे |_+_| . का उपयोग करके करेंगे एक स्ट्रिंग, संख्या या किसी अन्य के साथ बयान डाटा प्रकार . उदाहरण के लिए, आइए एक साधारण फ़ंक्शन बनाएं कि जब आप इसे लागू करेंगे तो यह एक कस्टम त्रुटि देगा। यह कस्टम त्रुटि एक स्ट्रिंग होगी।
try
जैसा कि आप देख सकते हैं, एक साधारण त्रुटि बनाना आसान है। इस तरह से त्रुटियां पैदा करने का नकारात्मक पक्ष यह है कि इन कस्टम त्रुटियों में |_+_|, |_+_| . नहीं होगा और |_+_| गुण। इसे ठीक करने का एक तरीका है। ऐसा करने का एक आसान तरीका एक आदिम डेटा प्रकार के बजाय किसी ऑब्जेक्ट का उपयोग करना है।
तो, एक स्ट्रिंग या अन्य आदिम फेंकने के बजाय, आप एक वस्तु फेंक देंगे। इस ऑब्जेक्ट के अंदर, आप उन सभी गुणों को परिभाषित करेंगे जो सामान्य रूप से किसी त्रुटि ऑब्जेक्ट में मौजूद होते हैं, |_+_|, |_+_| और |_+_|. अब, जब यह कस्टम त्रुटि होती है तो आप इसके |_+_|, |_+_| . तक भी पहुंच सकते हैं और |_+_|.
// Declare function outside try block function myFunction() { // do something } // Create try block try { // And invoke the function inside it myFunction() }
जावास्क्रिप्ट बिल्ट-इन एरर कंस्ट्रक्टर्स के साथ एरर बनाना
नई त्रुटियाँ उत्पन्न करने का एक अन्य विकल्प जावास्क्रिप्ट में निर्मित त्रुटि कंस्ट्रक्टरों का उपयोग करना है, जैसे |_+_|, |_+_|, |_+_|, |_+_|, |_+_|, |_ +_|, |_+_| और |_+_|. आप उपयोग करेंगे |_+_| इन कस्टम त्रुटियों को भी फेंकने के लिए बयान। आपको कीवर्ड का भी उपयोग करना होगा |_+_| एक कंस्ट्रक्टर के नाम के साथ।
|_+_| कीवर्ड कहता है कि आप एक कंस्ट्रक्टर का एक नया उदाहरण बना रहे हैं। इस मामले में, कुछ त्रुटि निर्माता। जब आप इनमें से किसी एक कंस्ट्रक्टर का उपयोग करते हैं |_+_| |_+_| . के अंदर की संपत्ति ऑब्जेक्ट आपके द्वारा उपयोग किया जाने वाला कंस्ट्रक्टर होगा। |_+_| जब आप कंस्ट्रक्टर को इंस्टेंट करते हैं तो वह स्ट्रिंग होगी जिसे आप तर्क के रूप में पास करते हैं।
try
फंक्शन कंस्ट्रक्टर और क्लास के साथ कस्टम एरर बनाना
जावास्क्रिप्ट बिल्ट-इन एरर कंस्ट्रक्टर्स के साथ-साथ आप फंक्शन कंस्ट्रक्टर या क्लास के साथ कस्टम एरर भी बना सकते हैं। यहां कैसे। नई कस्टम त्रुटि बनाने के लिए आपको फ़ंक्शन कंस्ट्रक्टर का उपयोग करना होगा। जब आप इसका उपयोग करते हैं तो यह फ़ंक्शन कंस्ट्रक्टर एक पैरामीटर लेगा। यह त्रुटि संदेश होगा।
इस कंस्ट्रक्टर के अंदर, आप तीन गुण जोड़ेंगे, |_+_|, |_+_| और |_+_|. |_+_| संपत्ति में आपकी कस्टम त्रुटि का नाम होगा। |_+_| पारित मान को संदर्भित करेगा |_+_| पैरामीटर। |_+_| उपयोग करेंगे |_+_| नए तत्काल से संपत्ति |_+_| निर्माता।
जब आपके पास यह हो तो आपको |_+_| एरर कंस्ट्रक्टर के लिए इस नए फंक्शन कंस्ट्रक्टर की संपत्ति। अंत में, आपको |_+_| . भी सेट करना होगा |_+_| . के अंतर्गत फंक्शन कंस्ट्रक्टर की संपत्ति फंक्शन कंस्ट्रक्टर को संपत्ति। जब आपके पास यह हो, तो आप |_+_| . का उपयोग करते हैं और |_+_| आपके कस्टम एरर कंस्ट्रक्टर के आधार पर नई एरर बनाने के लिए स्टेटमेंट।
catch
जावास्क्रिप्ट क्लास के साथ कस्टम एरर कंस्ट्रक्टर बनाना और भी आसान है। सबसे पहले, आपको अपने कस्टम एरर कंस्ट्रक्टर के लिए नई क्लास बनानी होगी। यह वर्ग |_+_| |_+_| कक्षा। कक्षा के अंदर, आप जोड़ेंगे |_+_| एक पैरामीटर के साथ। यह त्रुटि संदेश होगा।
|_+_| के अंदर, आपको |_+_| . पर कॉल करना होगा साथ |_+_| तर्क के रूप में पारित किया गया। यह मूल वर्ग के निर्माता को बुलाएगा |_+_|। उसके बाद, अभी भी |_+_| के अंदर, आप |_+_| . को ओवरराइड करेंगे अपनी खुद की संपत्ति जोड़कर |_+_| आपके कस्टम कंस्ट्रक्टर के नाम के साथ संपत्ति।
catch
वैश्विक स्तर पर त्रुटि प्रबंधन
|_+_| और |_+_| कथन शक्तिशाली हैं। ये दोनों त्रुटि प्रबंधन को बहुत आसान बना सकते हैं। एक समस्या यह हो सकती है यदि आप उस कोड को अलग नहीं कर सकते जिसे आप निष्पादित करना चाहते हैं |_+_| खंड मैथा। उदाहरण के लिए, जब कुछ कोड वैश्विक दायरे में उस स्थान से निष्पादित होते हैं जहां आप इसे एक्सेस नहीं कर सकते हैं।
इस मामले में, आप |_+_| . का उपयोग कर सकते हैं तरीका। यह एक त्रुटि ईवेंट हैंडलर है। आप इसका उपयोग वैश्विक दायरे में होने वाली त्रुटियों को पकड़ने और संसाधित करने के लिए कर सकते हैं। के अलावा |_+_| ऑब्जेक्ट आप इसे डीओएम में तत्वों के साथ भी उपयोग कर सकते हैं। वैकल्पिक रूप से, आप |_+_| . के लिए नया ईवेंट श्रोता संलग्न कर सकते हैं घटना, या तो |_+_| या कुछ तत्व।
try
#जावास्क्रिप्ट #ईबी विकास
माध्यम.कॉम
जावास्क्रिप्ट में त्रुटि प्रबंधन - अपना कोड सुरक्षित बनाएं
त्रुटियों को प्रबंधित करने का तरीका जानना प्रोग्रामिंग का महत्वपूर्ण हिस्सा है। यह ट्यूटोरियल आपको जावास्क्रिप्ट में त्रुटि प्रबंधन का आसान परिचय देगा। आप दो प्रकार की त्रुटियों और प्रत्येक को कैसे संभालना है, इसके बारे में जानेंगे। आप यह भी सीखेंगे कि अपने कोड को सुरक्षित और बहुत कुछ बनाने के लिए try...catch and throw कथनों का उपयोग कैसे करें।