जावास्क्रिप्ट की कोशिश ... पकड़ ... अंत में बयान

इस ट्यूटोरियल में, आप उदाहरणों की मदद से जावास्क्रिप्ट में अपवादों को संभालने के लिए आखिरकार … पकड़ने … के बारे में जानेंगे।

try, catchऔर finallyब्लॉक अपवाद (एक त्रुटि का एक प्रकार) को संभालने के लिए उपयोग किया जाता है। इससे पहले कि आप उनके बारे में जानें, आपको प्रोग्रामिंग में त्रुटियों के प्रकारों के बारे में जानना होगा।

त्रुटियों के प्रकार

प्रोग्रामिंग में, कोड में दो प्रकार की त्रुटियां हो सकती हैं:

सिंटैक्स त्रुटि : सिंटैक्स में त्रुटि । उदाहरण के लिए, यदि आप लिखते हैं consol.log('your result');, तो उपरोक्त प्रोग्राम एक सिंटैक्स त्रुटि फेंकता है। consoleउपरोक्त कोड में वर्तनी की गलती है।

रनटाइम त्रुटि : इस प्रकार की त्रुटि कार्यक्रम के निष्पादन के दौरान होती है। उदाहरण के लिए,
अमान्य फ़ंक्शन या चर को कॉल करना।

रनटाइम के दौरान होने वाली इन त्रुटियों को अपवाद कहा जाता है । अब, आइए देखें कि आप इन अपवादों को कैसे संभाल सकते हैं।

जावास्क्रिप्ट का प्रयास करें … वक्तव्य को पकड़ें

try… catchबयान अपवाद को संभालने के लिए प्रयोग किया जाता है। इसका सिंटैक्स है:

 try ( // body of try ) catch(error) ( // body of catch )

मुख्य कोड tryब्लॉक के अंदर है । tryब्लॉक निष्पादित करते समय , यदि कोई त्रुटि होती है, तो यह catchब्लॉक में जाती है। catchब्लॉक पकड़ बयान के अनुसार त्रुटियों को संभालती है।

यदि कोई त्रुटि नहीं होती है, तो tryब्लॉक के अंदर कोड निष्पादित होता है और catchब्लॉक को छोड़ दिया जाता है।

उदाहरण 1: प्रदर्शन अघोषित चर

 // program to show try… catch in a program const numerator= 100, denominator = 'a'; try ( console.log(numerator/denominator); // forgot to define variable a console.log(a); ) catch(error) ( console.log('An error caught'); console.log('Error message: ' + error); )

आउटपुट

 NaN एक त्रुटि पकड़ा त्रुटि संदेश: ReferenceError: एक परिभाषित नहीं है

उपरोक्त कार्यक्रम में, एक चर को परिभाषित नहीं किया गया है। जब आप किसी चर को प्रिंट करने का प्रयास करते हैं, तो प्रोग्राम एक त्रुटि फेंकता है। वह त्रुटि catchब्लॉक में पकड़ी गई है ।

जावास्क्रिप्ट की कोशिश … पकड़ … अंत में बयान

आप try… catch… finallyअपवादों को संभालने के लिए कथन का उपयोग भी कर सकते हैं । finallyब्लॉक दोनों जब कोड को सफलतापूर्वक या यदि कोई त्रुटि होती है चलाता है निष्पादित करता है।

try… catch… finallyब्लॉक का सिंटैक्स है:

 try ( // try_statements ) catch(error) ( // catch_statements ) finally() ( // codes that gets executed anyway )

उदाहरण 2: कोशिश करें … पकड़ें … अंत में उदाहरण

 const numerator= 100, denominator = 'a'; try ( console.log(numerator/denominator); console.log(a); ) catch(error) ( console.log('An error caught'); console.log('Error message: ' + error); ) finally ( console.log('Finally will execute every time'); )

आउटपुट

 NaN एक त्रुटि पकड़ा त्रुटि संदेश: संदर्भ: एक परिभाषित नहीं है अंत में हर बार निष्पादित करेगा

उपरोक्त कार्यक्रम में, एक त्रुटि होती है और उस त्रुटि को catchब्लॉक द्वारा पकड़ा जाता है । finallyब्लॉक किसी भी स्थिति में निष्पादित करेंगे (यदि कार्यक्रम को सफलतापूर्वक या कोई त्रुटि होती है तो चलता है)।

नोट : आपको कथन के बाद उपयोग catchया finallyविवरण देने की आवश्यकता है try। अन्यथा, प्रोग्राम एक त्रुटि फेंक देगा अनकंटेक्ट सिंटेक्स एरर: मिस कैच या अंत में कोशिश के बाद।

जावास्क्रिप्ट की कोशिश … setTimeout में पकड़

यह try… catchअपवाद नहीं पकड़ेगा यदि यह " टाइम " कोड में हुआ है , जैसे सेटटाइमआउट () में। उदाहरण के लिए,

 try ( setTimeout(function() ( // error in the code ), 3000); ) catch (e) ( console.log( "won't work" ); )

उपरोक्त try… catchकाम नहीं करेगा क्योंकि इंजन ने पहले ही try… catchनिर्माण छोड़ दिया है और फ़ंक्शन को बाद में निष्पादित किया गया है।

try… catchब्लॉक एक समय समारोह के अंदर एक अपवाद को पकड़ने के लिए है कि समारोह के अंदर होना चाहिए। उदाहरण के लिए,

 setTimeout(function() ( try ( // error in the code ) catch ( console.log( "error is caught" ); ) ), 3000);

आप उपयोगकर्ता-परिभाषित अपवादों का उपयोग करने के लिए throwकथन के साथ try… catchकथन का उपयोग भी कर सकते हैं । उदाहरण के लिए, एक निश्चित संख्या 0 से विभाजित होती है । यदि आप Infinityकार्यक्रम में त्रुटि के रूप में विचार करना चाहते हैं , तो आप throwउस स्थिति को संभालने के लिए कथन का उपयोग करके एक उपयोगकर्ता-परिभाषित अपवाद फेंक सकते हैं।

आप अगले ट्यूटोरियल में जावास्क्रिप्ट थ्रो स्टेटमेंट के बारे में जानेंगे।

दिलचस्प लेख...