इस ट्यूटोरियल में, आप उदाहरणों की मदद से जावास्क्रिप्ट में अपवादों को संभालने के लिए आखिरकार … पकड़ने … के बारे में जानेंगे।
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
उस स्थिति को संभालने के लिए कथन का उपयोग करके एक उपयोगकर्ता-परिभाषित अपवाद फेंक सकते हैं।
आप अगले ट्यूटोरियल में जावास्क्रिप्ट थ्रो स्टेटमेंट के बारे में जानेंगे।