🚨
Error Handling

try, catch, finally

Errors Ko Gracefully Handle Karo
💡 try-catch ek safety net hai — agar acrobat (code) girta hai (error aata hai), net (catch) usse pakad leta hai, poora show (program/page) crash nahi hota. finally ek "chahe kuch bhi ho" cleanup crew hai.

try block mein risky code likhte ho. Agar error aaye, execution turant catch block mein jump karta hai (error object ke saath). finally block HAMESHA chalta hai — chahe error aaye ya na aaye — cleanup code ke liye perfect.

throw keyword se manually error "throw" (signal) kar sakte ho — new Error("message") ek standard error object banata hai, jisme .message aur .stack (debugging ke liye) properties hoti hain.

function divide(a, b) {
  if (b === 0) {
    throw new Error("Zero se divide nahi kar sakte!");
  }
  return a / b;
}

try {
  console.log(divide(10, 2));   // 5
  console.log(divide(10, 0));   // error throw hoga
  console.log("Ye line kabhi nahi chalegi");
} catch (error) {
  console.log("Error mila: " + error.message);
} finally {
  console.log("Ye HAMESHA chalta hai, error aaye ya na aaye");
}

console.log("Program continue chal raha hai!");   // crash nahi hua
🚨
try-catch ek safety net hai — agar acrobat (code) girta hai (error aata hai), net (catch) usse pakad leta hai, poora show (program/page) crash nahi hota. finally ek "chahe kuch bhi ho" cleanup crew hai.
1 / 6
⚡ Quick Recap
  • try = risky code, catch = handle karo, finally = hamesha chalta hai
  • throw new Error("msg") = manually error signal karna
  • Unhandled errors poori app crash kar sakte hain — try-catch protection deta hai
Is page mein (2 subtopics)

try-catch async/await ke saath perfectly kaam karta hai (jaise sync code), lekin Promise .then() chains ke saath .catch() use karna padta hai — try-catch async functions ke ANDAR hi kaam karta hai, .then() callbacks ke bahar nahi.

// async/await ke saath — try-catch directly kaam karta hai:
async function getData() {
  try {
    const response = await fetch("https://api.example.com/data");
    const data = await response.json();
    return data;
  } catch (error) {
    console.log("Fetch failed: " + error.message);
  }
}

// Promise chain ke saath — .catch() use karo:
fetch("https://api.example.com/data")
  .then(response => response.json())
  .catch(error => console.log("Fetch failed: " + error.message));
💡Tip: try-catch mein setTimeout() ke andar ka error catch NAHI hoga — try-catch sirf SYNCHRONOUS execution ke errors pakadता hai us block ke andar, callback ke andar ka error alag "execution context" hai.

Modern JavaScript mein catch (error) ke bina, sirf catch {} likh sakte ho — jab error object ki zaroorat na ho (sirf "kuch fail hua, handle karo" chahiye ho).

try {
  JSON.parse("invalid json");
} catch {   // error parameter skip kiya — allowed hai
  console.log("Parsing fail hui, default value use karo");
}
💡Tip: Ye syntax tab useful hai jab tumhe error ki DETAILS nahi chahiye, sirf "fail hone par ye karo" — chhota, cleaner syntax.