5 मिनट पढ़ें · मुफ़्त · बिना लॉगिन
हर प्रोग्राम में गलतियाँ होती हैं। एक variable की spelling गलत है, एक number किसी चीज़ से भाग नहीं होता, एक server जवाब नहीं देता। JavaScript में ऐसी गलती को error कहते हैं, और आमतौर पर यह पूरी script रोक देता है — error के बाद सब कुछ कभी चलता ही नहीं। इसीलिए एक छोटी typo पूरा पेज खाली कर सकती है। इसका उपाय है error को ऊपर पहुँचने से पहले पकड़ लेना: try, catch और finally।
चाय की दुकान के order की तरह सोचिए। आप चाय बनाने की कोशिश करते हैं (जोखिम भरा कदम)। अगर दूध खत्म हो गया, तो आप समस्या पकड़ते हैं और उसकी जगह काली चाय देते हैं (backup plan)। और finally, order काम करे या न करे, आप counter साफ़ करते हैं (सफ़ाई)। एक item के न होने से दुकान बंद नहीं होती — और एक खराब value से आपका पेज नहीं टूटना चाहिए।
try {
// risky code — if it throws, jump to catch
let total = price * qty;
} catch (error) {
// backup plan — error.message tells you what went wrong
console.log("Something went wrong: " + error.message);
} finally {
// always runs — tidy up here
console.log("Done.");
}
try block में जोखिम भरा code होता है। अगर उसके अंदर कुछ भी error फेंकता है, तो JavaScript सीधे catch block पर कूद जाता है और try का बाकी हिस्सा छोड़ देता है। catch block error को एक object के रूप में पाता है, और error.message में छोटा-सा विवरण होता है। finally block चाहे कुछ भी हो, हमेशा चलता है — error हो या न हो — इसलिए यह सफ़ाई के लिए सही जगह है, जैसे loading message बंद करना।
try block बिना catch के तभी ठीक है, जब उसमें finally हो। पर try के साथ finally और बिना catch के error नहीं रुकता — वह सिर्फ सफ़ाई चलाता है, फिर error आगे बढ़ता है। Error को सच में सँभालने के लिए catch चाहिए।कभी-कभी code ठीक चलता है, पर value गलत होती है — negative उम्र, खाली नाम, शून्य quantity। JavaScript नहीं जानता कि यह error है, इसलिए आप खुद एक फेंकते हैं:
function checkAge(age) {
if (age < 0) {
throw new Error("Age cannot be negative.");
}
return "Age is fine.";
}
throw new Error("...") function को उसी पल रोक देता है और नज़दीकी catch पर कूद जाता है। यह एक चुपचाप गलत value को ज़ोरदार, दिखने वाली समस्या में बदल देता है — उसे ढूँढना और ठीक करना, चुपचाप गलत निकलने वाले बिल से कहीं आसान है।
ReferenceError: x is not defined — आपने ऐसा variable इस्तेमाल किया जो है ही नहीं, आमतौर पर spelling की गलती। नाम को अक्षर-अक्षर जाँचिए।TypeError: Cannot read properties of null — आपने ऐसी चीज़ इस्तेमाल करने की कोशिश की जो null है, अक्सर इसलिए क्योंकि getElementById element नहीं ढूँढ पाया। HTML में id जाँचिए।SyntaxError: Unexpected token — code खुद गलत लिखा गया है, जैसे कोई bracket छूट गया हो। Browser लाइन बताता है — वहीं से शुरू कीजिए।RangeError: Maximum call stack size exceeded — एक function खुद को हमेशा बुलाता रहता है। जाँचिए कि आपके recursion या loop से बाहर निकलने का रास्ता है।Error message की पहली लाइन पढ़िए, पूरा stack नहीं। पहली लाइन आमतौर पर type और जगह बता देती है — ज़्यादातर मामलों में bug ढूँढने के लिए उतना ही काफी है।
try में लपेटिए — पूरे प्रोग्राम को लपेटने से असली गलती छिप जाती है और debugging मुश्किल हो जाता है।try में लपेटना — आप भूल जाते हैं कि error असल में कहाँ से आया था। try block छोटा रखिए।catch block — error चुपचाप निगल लिया जाता है और bug अदृश्य हो जाता है। कम से कम error.message log कीजिए।try सिर्फ वही errors पकड़ता है जो उसके अंदर होते हैं — timer या promise में हुई error को अपनी handling चाहिए।throw "some string" इस्तेमाल करना, throw new Error("...") की जगह — string में stack trace नहीं होता, इसलिए आप नहीं ढूँढ सकते कि वह कहाँ से आई।try में जोखिम भरा code होता है, catch में backup plan होता है, finally हमेशा चलता है।throw new Error("...") तब अपनी error बनाता है, जब value गलत हो।let age = Number(document.getElementById("age").value); — उम्र वाला box पढ़ता है और string को number में बदलता है।if (isNaN(age)) { throw new Error("Please type a number."); } — अगर input number नहीं है, तो हम टूटी value के साथ आगे बढ़ने की जगह अपनी error फेंकते हैं।if (age < 0) { throw new Error("Age cannot be negative."); } — दूसरी जाँच: negative उम्र नामुमकिन है, इसलिए यह भी error है।catch (error) { ... error.message ... } — जो भी error फेंकी गई, उसका message पेज पर लाल रंग में दिखाया जाता है। पेज कभी टूटता नहीं।finally { document.getElementById("age").value = ""; } — input box चाहे जाँच पास हो या fail, खाली कर दिया जाता है, ताकि अगली कोशिश साफ़ शुरू हो।<!DOCTYPE html>
<html>
<head>
<title>Age Check — try and catch</title>
<style>
body { font-family: Verdana, sans-serif; background-color: #fff8e1; }
h1 { color: #b45309; text-align: center; }
.card { background-color: white; border: 2px solid #f59e0b; padding: 16px; width: 340px; margin: 20px auto; }
button { background-color: #b45309; color: white; border: none; padding: 10px 18px; font-size: 16px; }
#out { font-weight: bold; }
</style>
</head>
<body>
<h1>Age Check</h1>
<div class="card">
<p>Your age: <input id="age" type="text" value="25"></p>
<p><button onclick="checkAge()">Check my age</button></p>
<p id="out">Type your age and click the button.</p>
<p>Try it: type -5, or type "abc" — the page shows the error instead of breaking.</p>
</div>
<script>
function checkAge() {
let out = document.getElementById("out");
try {
let age = Number(document.getElementById("age").value);
if (isNaN(age)) { throw new Error("Please type a number."); }
if (age < 0) { throw new Error("Age cannot be negative."); }
out.style.color = "green";
out.textContent = "Your age is " + age + ". All good!";
} catch (error) {
out.style.color = "red";
out.textContent = "Error: " + error.message;
} finally {
document.getElementById("age").value = "";
}
}
</script>
</body>
</html>
नीचे दिया गया कोड बदलें और चलाएँ दबाएँ — परिणाम तुरंत दिखेगा। कोई फाइल सहेजनी नहीं है, कोई लॉगिन नहीं चाहिए।
AI आपके लिए कोड लिख सकता है, लेकिन वह आपके लिए सोच नहीं सकता। जब आप HTML खुद सीखते हैं, तो आपका दिमाग असली कौशल बनाता है: आप समझते हैं कि पेज ऐसा क्यों दिखता है, टूटने पर उसे ठीक कर सकते हैं, और परीक्षा या इंटरव्यू में बिना मदद के जवाब दे सकते हैं। यही कौशल नौकरी दिलाता है — कॉपी किया हुआ जवाब नहीं।
सभी 30 पाठ पूरे करें, टेस्ट पास करें (80%), ₹10 दें और अपना सर्टिफिकेट पाएँ।
टेस्ट देंदेखकर सीखना पसंद है? वीडियो कोर्स में वही विषय एक-एक करके सिखाए जाते हैं।
Free tutorials teach you the basics. Our paid courses add live projects, mentorship and a certificate.
Browse all coursesAsk about courses, website & more
Request human callback:
Download karne ke liye login karo. Login ke baad yahi page pe rahoge!
Naya ho? Register karo →