जावास्क्रिप्ट त्रुटियाँ
फेंको, और कोशिश करो...पकड़ो...आखिरकार
try
कथन एक कोड ब्लॉक को चलाने के लिए परिभाषित करता है (कोशिश करने के लिए) ।
catch
कथन किसी भी त्रुटि को संभालने के लिए एक कोड ब्लॉक को परिभाषित करता है ।
कथन परिणाम की finally
परवाह किए बिना चलाने के लिए एक कोड ब्लॉक को परिभाषित करता है।
throw
कथन एक कस्टम त्रुटि को परिभाषित करता है ।
त्रुटियां होंगी!
जावास्क्रिप्ट कोड निष्पादित करते समय, विभिन्न त्रुटियां हो सकती हैं।
त्रुटियां प्रोग्रामर द्वारा की गई कोडिंग त्रुटियां, गलत इनपुट के कारण त्रुटियां और अन्य अप्रत्याशित चीजें हो सकती हैं।
उदाहरण
इस उदाहरण में हमने जानबूझकर एक त्रुटि उत्पन्न करने के लिए "अलर्ट" को "एडलर्ट" के रूप में गलत लिखा है:
<p id="demo"></p>
<script>
try {
adddlert("Welcome guest!");
}
catch(err) {
document.getElementById("demo").innerHTML = err.message;
}
</script>
जावास्क्रिप्ट एडलर्ट को एक त्रुटि के रूप में पकड़ता है, और इसे संभालने के लिए कैच कोड निष्पादित करता है।
जावास्क्रिप्ट कोशिश करो और पकड़ो
यह try
कथन आपको कोड के एक ब्लॉक को परिभाषित करने की अनुमति देता है जिसे निष्पादित करते समय त्रुटियों के लिए परीक्षण किया जाना है।
catch
यदि प्रयास ब्लॉक में कोई त्रुटि होती है, तो कथन आपको निष्पादित किए जाने वाले कोड के ब्लॉक को परिभाषित करने की अनुमति देता है ।
जावास्क्रिप्ट कथन try
और catch
जोड़े में आते हैं:
try {
Block of code to try
}
catch(err) {
Block of code to handle errors
}
जावास्क्रिप्ट त्रुटियाँ फेंकता है
जब कोई त्रुटि होती है, तो जावास्क्रिप्ट सामान्य रूप से रुक जाएगा और एक त्रुटि संदेश उत्पन्न करेगा।
इसके लिए तकनीकी शब्द है: जावास्क्रिप्ट एक अपवाद (त्रुटि फेंकें) फेंक देगा ।
जावास्क्रिप्ट वास्तव में दो गुणों के साथ एक त्रुटि वस्तु बनाएगा: नाम और संदेश ।
थ्रो स्टेटमेंट
throw
कथन आपको एक कस्टम त्रुटि बनाने की अनुमति देता है ।
तकनीकी रूप से आप एक अपवाद (त्रुटि फेंक सकते हैं) फेंक सकते हैं ।
अपवाद एक JavaScript String
, a Number
, a Boolean
या a हो सकता है Object
:
throw "Too big"; // throw a text
throw 500; // throw a number
यदि आप throw
के साथ try
और
का उपयोग करते हैं catch
, तो आप प्रोग्राम प्रवाह को नियंत्रित कर सकते हैं और कस्टम त्रुटि संदेश उत्पन्न कर सकते हैं।
इनपुट सत्यापन उदाहरण
यह उदाहरण इनपुट की जांच करता है। यदि मान गलत है, तो एक अपवाद (त्रुटि) को फेंक दिया जाता है।
अपवाद (त्रुटि) कैच स्टेटमेंट द्वारा पकड़ा जाता है और एक कस्टम त्रुटि संदेश प्रदर्शित होता है:
<!DOCTYPE html>
<html>
<body>
<p>Please input a number between
5 and 10:</p>
<input id="demo" type="text">
<button type="button"
onclick="myFunction()">Test Input</button>
<p id="p01"></p>
<script>
function myFunction() {
const message =
document.getElementById("p01");
message.innerHTML = "";
let x =
document.getElementById("demo").value;
try {
if(x == "") throw "empty";
if(isNaN(x)) throw "not a number";
x = Number(x);
if(x < 5) throw
"too low";
if(x > 10) throw "too
high";
}
catch(err) {
message.innerHTML =
"Input is " + err;
}
}
</script>
</body>
</html>
एचटीएमएल सत्यापन
उपरोक्त कोड सिर्फ एक उदाहरण है।
HTML विशेषताओं में परिभाषित पूर्वनिर्धारित सत्यापन नियमों का उपयोग करते हुए आधुनिक ब्राउज़र अक्सर जावास्क्रिप्ट और अंतर्निहित HTML सत्यापन के संयोजन का उपयोग करेंगे:
<input id="demo" type="number" min="5" max="10" step="1">
आप इस ट्यूटोरियल के बाद के अध्याय में फॉर्म सत्यापन के बारे में अधिक पढ़ सकते हैं।
अंत में वक्तव्य
कथन आपको परिणाम की finally
परवाह किए बिना कोशिश करने और पकड़ने के बाद कोड निष्पादित करने देता है:
वाक्य - विन्यास
try {
Block of code to try
}
catch(err) {
Block of code to handle errors
}
finally {
Block of code to be executed regardless of the try / catch result
}
उदाहरण
function myFunction() {
const message =
document.getElementById("p01");
message.innerHTML = "";
let x =
document.getElementById("demo").value;
try {
if(x == "") throw "is empty";
if(isNaN(x))
throw "is not a number";
x = Number(x);
if(x >
10) throw "is too high";
if(x <
5) throw "is too low";
}
catch(err)
{
message.innerHTML = "Error: " +
err + ".";
}
finally {
document.getElementById("demo").value = "";
}
}
त्रुटि वस्तु
जावास्क्रिप्ट में एक अंतर्निहित त्रुटि वस्तु है जो त्रुटि होने पर त्रुटि जानकारी प्रदान करती है।
त्रुटि वस्तु दो उपयोगी गुण प्रदान करती है: नाम और संदेश।
त्रुटि वस्तु गुण
संपत्ति | विवरण |
---|---|
नाम | त्रुटि नाम सेट या लौटाता है |
संदेश | एक त्रुटि संदेश सेट या लौटाता है (एक स्ट्रिंग) |
त्रुटि नाम मान
त्रुटि नाम संपत्ति द्वारा छह अलग-अलग मान लौटाए जा सकते हैं:
त्रुटि का नाम | विवरण |
---|---|
EvalError | Eval () फ़ंक्शन में कोई त्रुटि उत्पन्न हुई है |
रेंज त्रुटि | एक संख्या "सीमा से बाहर" हुई है |
संदर्भ त्रुटि | एक अवैध संदर्भ हुआ है |
वक्य रचना त्रुटि | एक सिंटैक्स त्रुटि हुई है |
त्रुटि प्रकार | एक प्रकार की त्रुटि हुई है |
यूआरआईत्रुटि | encodeURI () में एक त्रुटि हुई है |
छह अलग-अलग मूल्यों का वर्णन नीचे किया गया है।
इवल एरर
एक EvalError
eval () फ़ंक्शन में एक त्रुटि को इंगित करता है।
जावास्क्रिप्ट के नए संस्करण EvalError नहीं फेंकते हैं। इसके बजाय सिंटैक्स त्रुटि का प्रयोग करें।
रेंज त्रुटि
RangeError
यदि आप किसी ऐसे नंबर का उपयोग करते हैं जो कानूनी मूल्यों की सीमा से बाहर है, तो A को फेंक दिया जाता है।
उदाहरण के लिए: आप किसी संख्या के सार्थक अंकों की संख्या को 500 पर सेट नहीं कर सकते।
उदाहरण
let num = 1;
try {
num.toPrecision(500); // A number cannot have 500
significant digits
}
catch(err) {
document.getElementById("demo").innerHTML = err.name;
}
संदर्भ त्रुटि
ए ReferenceError
को फेंक दिया जाता है यदि आप एक चर (संदर्भ) का उपयोग करते हैं जिसे घोषित नहीं किया गया है:
उदाहरण
let x = 5;
try {
x = y + 1; // y cannot be used (referenced)
}
catch(err) {
document.getElementById("demo").innerHTML = err.name;
}
वक्य रचना त्रुटि
SyntaxError
यदि आप सिंटैक्स त्रुटि के साथ कोड का मूल्यांकन करने का प्रयास करते हैं तो A फेंक दिया जाता है।
उदाहरण
try {
eval("alert('Hello)"); //
Missing ' will produce an error
}
catch(err) {
document.getElementById("demo").innerHTML = err.name;
}
त्रुटि प्रकार
TypeError
यदि आप किसी ऐसे मान का उपयोग करते हैं जो अपेक्षित प्रकारों की सीमा से बाहर है, तो A फेंक दिया जाता है:
उदाहरण
let num = 1;
try {
num.toUpperCase(); // You cannot convert a number
to upper case
}
catch(err) {
document.getElementById("demo").innerHTML = err.name;
}
यूआरआई (यूनिफ़ॉर्म रिसोर्स आइडेंटिफ़ायर) त्रुटि
URIError
यदि आप URI फ़ंक्शन में अवैध वर्णों का उपयोग करते हैं, तो A को फेंक दिया जाता है:
उदाहरण
try {
decodeURI("%%%"); // You cannot URI decode
percent signs
}
catch(err) {
document.getElementById("demo").innerHTML = err.name;
}
गैर-मानक त्रुटि वस्तु गुण
Mozilla और Microsoft कुछ गैर-मानक त्रुटि ऑब्जेक्ट गुणों को परिभाषित करते हैं:
फ़ाइल नाम (मोज़िला)
लाइननंबर (मोज़िला)
कॉलम नंबर (मोज़िला)
स्टैक (मोज़िला)
विवरण (माइक्रोसॉफ्ट)
नंबर (माइक्रोसॉफ्ट)
सार्वजनिक वेब साइटों में इन संपत्तियों का उपयोग न करें। वे सभी ब्राउज़रों में काम नहीं करेंगे।
पूर्ण त्रुटि संदर्भ
त्रुटि ऑब्जेक्ट के पूर्ण संदर्भ के लिए, हमारे पूर्ण जावास्क्रिप्ट त्रुटि संदर्भ पर जाएं ।