जावास्क्रिप्ट एरर - थ्रो और ट्राय टू कैच
- पिछला पृष्ठ JS ऑपरेटर प्राथमिकता
- अगला पृष्ठ JS स्कोप
try
बयान आपको कोड ब्लॉक के अंदर त्रुटि को परीक्षण करने की अनुमति देता है।
catch
बयान आपको त्रुटि को हल करने की अनुमति देता है।
throw
वाक्यांश आपको अनुकूलित त्रुटि बनाने की अनुमति देता है。
finally
आपको त्रुटि को हल करने के बाद भी कोड को चलाने की अनुमति देता है, चाहे परिणाम कितना भी हो।
त्रुटियाँ हमेशा होती हैं!
जब जावास्क्रिप्ट कोड चलाया जाता है, तो विभिन्न त्रुटियाँ होती हैं।
त्रुटि कोडर के दोष, गलत इनपुट के कारण होने वाली त्रुटि या अन्य अपर्याप्त शास्त्रीय समस्याओं के कारण हो सकती है।
इंस्टांस
इस उदाहरण में, हम द्वारा adddlert
एक त्रुटि को जानबूझकर बनाने के लिए चेतावनी कोड लिखें:
<p id="demo"></p> <script> try { adddlert("स्वागत करें!"); } catch(err) { document.getElementById("demo").innerHTML = err.message; } </script>
जावास्क्रिप्ट एडडलर्ट को एक त्रुटि के रूप में पकड़ता है और त्रुटि को हल करने के लिए कोड चलाता है。
जावास्क्रिप्ट ट्राय और कैच
try
बयान आपको एक कोड ब्लॉक परिभाषित करने की अनुमति देता है ताकि इसे चलाते समय त्रुटियाँ पाई जा सकें।
catch
बयान आपको एक ऐसा कोड ब्लॉक परिभाषित करने की अनुमति देता है जो यदि try कोड ब्लॉक में त्रुटि होगी तो चलाया जाए।
जेसक्रिप्ट स्टेटमेंट try
और catch
साथ-साथ दिखाई देते हैं:
try { परीक्षण के लिए कोड ब्लॉक } catch(err) { त्रुटि को हल करने वाला कोड ब्लॉक }
जावास्क्रिप्ट एक त्रुटि फेंकता है
त्रुटि होने पर JavaScript आमतौर पर रुकता है और त्रुटि संदेश उत्पन्न करता है।
इस तकनीकी शब्द का वर्णन इस तरह किया जाता है:JavaScript अचानक (त्रुटि) फेंक सकता है (त्रुटि फेंक सकता है)
JavaScript वास्तव में दो गुणों वाला अचानक (त्रुटि) बना सकता है Error ऑब्जैक्ट:name
और message
throw वाक्यांश
throw
वाक्यांश आपको अनुकूलित त्रुटि बनाने की अनुमति देता है。
टेक्निकल रूप से आपअचानक (त्रुटि) फेंकें (त्रुटि फेंकें)
अचानक हो सकता है JavaScript चरिंता, संख्या, बूल या ऑब्जैक्ट हो सकता है:
throw "Too big"; // टेक्स्ट फेंकें throw 500; // संख्या फेंकें
अगर throw
साथ try
और catch
साथ मिलकर, यह प्रोग्राम की प्रवाह को नियंत्रित कर सकता है और अनुकूलित त्रुटि संदेश बना सकता है。
इनपुट वेरिफिकेशन का मामला
इस उदाहरण में इनपुट की जांच की जाएगी। यदि मान गलत है, तो त्रुटि (err) फेंकी जाएगी。
इस अचानक (err) को कैच वाक्यांश द्वारा पकड़ा जाता है और एक अनुकूलित त्रुटि संदेश दिखाया जाता है:
<!DOCTYPE html> <html> <body> <p>5 - 10 के बीच की संख्या भरें:</p> <input id="demo" type="text"> <button type="button" onclick="myFunction()">इनपुट को परीक्षण करें</button> <p id="message"></p> <script> function myFunction() { var message, x; message = document.getElementById("message"); message.innerHTML = ""; x = document.getElementById("demo").value; try { if(x == "") throw "खाली"; if(isNaN(x)) throw "यह नंबर नहीं है"; x = Number(x); if(x < 5) throw "बहुत छोटा"; if(x > 10) throw "बहुत बड़ा"; } catch(err) { message.innerHTML = "इनपुट है " + err; } } </script> </body> </html>
HTML वेरिफिकेशन
इस कोड केवल एक उदाहरण है।
समयार्थक ब्राउज़र आमतौर पर JavaScript को निर्धारित HTML वेरिफिकेशन के साथ जोड़ते हैं, HTML गुणों में परिभाषित अग्रिम वेरिफिकेशन नियमों के जरिए:
<input id="demo" type="number" min="5" max="10" step="1">
आप इस अध्याय में बाद में फॉर्म वेरिफिकेशन के बारे में अधिक जानेंगे。
finally वाक्यांश
finally
इस वाक्यांश को प्रयास और कैच के बाद कोड को चलाने की अनुमति है, फलस्वरूप किसी भी वाले:
try { // परीक्षण के लिए कोड ब्लॉक } catch(err) { // त्रुटि का संभालन करने वाला कोड ब्लॉक } finally { // फलस्वरूप किसी भी वाले कोड ब्लॉक को चलाता है }
इंस्टांस
function myFunction() { var message, x; message = document.getElementById("message"); message.innerHTML = ""; x = document.getElementById("demo").value; try { if(x == "") throw "खाली है"; if(isNaN(x)) throw "यह नंबर नहीं है"; x = Number(x); if(x > 10) throw "बहुत बड़ा"; if(x < 5) throw "बहुत छोटा"; } catch(err) { message.innerHTML = "त्रुटि: " + err + "."; } finally { document.getElementById("demo").value = ""; } }
Error ऑब्जैक्ट
जेवेस्क्रिप्ट त्रुटि होने पर त्रुटि संदेश प्रदान करने के लिए बीटी ऑब्जैक्ट का अंतर्निहित error ऑब्जैक्ट है。
error ऑब्जैक्ट दो उपयोगी विशेषताएँ प्रदान करता है:name
और message
Error ऑब्जैक्ट विशेषताएँ
विशेषता | वर्णन |
---|---|
name | सेट या वापस करें (एक तार्किक शब्द) से त्रुटि नाम |
message | सेट या वापस करें (एक तार्किक शब्द) से त्रुटि संदेश (एक शब्द-शृंखला) |
Error Name Values
error की name विशेषता छह अलग-अलग मूल्य वापस देती है:
एरर नाम | वर्णन |
---|---|
EvalError | eval() फ़ंक्शन में हुई त्रुटि |
RangeError | संख्या दायरे से बाहर की त्रुटि हुई |
ReferenceError | अवैध उपहार हुई |
SyntaxError | वाक्यांश त्रुटि हुई |
TypeError | टाइप त्रुटि हुई |
URIError | encodeURI() में हुई त्रुटि |
आपको इन छह अलग-अलग मूल्यों के बारे में विस्तार से बताया जाएगा。
Eval त्रुटि
EvalError
eval() फ़ंक्शन के भीतर की त्रुटियों को फेंक नहीं देता
नवीनतम संस्करण के JavaScript में कोई भी EvalError
कृपया SyntaxError
स्थानांतरित
दायरा त्रुटि
RangeError
यह आप वैध रंग के बाहर के नंबर का उपयोग करने पर फेंक दी जाएगी。
उदाहरण: आप नंबर के वैध अंकों को 500 में सेट नहीं कर सकते。
इंस्टांस
var num = 1; try { num.toPrecision(500); // संख्या 500 से अधिक वैध अंकों का नहीं हो सकता } catch(err) { document.getElementById("demo").innerHTML = err.name; }
उपहार त्रुटि
यदि आप अभी तक घोषित न किए गए वेरियेबल का उपयोग (उपहार) करते हैं, तो ReferenceError
इस तरह फेंक दी जाएगी:
इंस्टांस
var x; try { x = y + 1; // y उपयोग किया नहीं जा सकता (उपयोग किया जाता है) } catch(err) { document.getElementById("demo").innerHTML = err.name; }
वाक्यांश त्रुटि
यदि आप वाक्यांश त्रुटि वाला कोड गणना करते हैं, तो SyntaxError
उत्पन्न:
इंस्टांस
try { eval("alert('Hello')"); // ' के अभाव में त्रुटि होगी } catch(err) { document.getElementById("demo").innerHTML = err.name; }
टाइप त्रुटि
यदि आप उस तरीके का उपयोग कर रहे हैं जो आशानुसार के रंग के बाहर है, तो TypeError
उत्पन्न:
इंस्टांस
var num = 1; try { num.toUpperCase(); // आप नंबर को ऊपरी अक्षर में नहीं बदल सकते हैं } catch(err) { document.getElementById("demo").innerHTML = err.name; }
URI त्रुटि
अगर आप URI फ़ंक्शन में अवैध अक्षरों का इस्तेमाल करें तो URIError
उत्पन्न:
इंस्टांस
try { decodeURI("%%%"); // आप इन प्रतिकरणों को URI एनकोडिंग नहीं कर सकते हैं } catch(err) { document.getElementById("demo").innerHTML = err.name; }
असामान्य Error ऑब्जेक्ट गुण
Mozilla और Microsoft ने असामान्य error ऑब्जेक्ट गुणों को परिभाषित किया है:
- fileName (Mozilla)
- lineNumber (Mozilla)
- columnNumber (Mozilla)
- stack (Mozilla)
- description (Microsoft)
- number (Microsoft)
ये गुणों को सार्वजनिक वेबसाइट पर नहीं इस्तेमाल करें।ये सभी ब्राउज़र में काम नहीं करेंगे。
- पिछला पृष्ठ JS ऑपरेटर प्राथमिकता
- अगला पृष्ठ JS स्कोप