पाठ 27 / 38

try/catch और कस्टम एरर

विफलताओं को शालीनता से पकड़ना, और अपने खुद के एरर टाइप बनाना।

try / catch / finally

try का कोड पहले चलता है; त्रुटि आने पर catch उसे संभालता है; finally हमेशा चलता है, त्रुटि हो या न हो।

try {
  JSON.parse("{ invalid json");
} catch (err) {
  console.log("Failed:", err.message);
} finally {
  console.log("Always runs");
}

एरर throw करना

throw से आप खुद एरर उठाते हैं, जो सामान्य execution को तब तक रोकता है जब तक कोई उसे न पकड़े।

function divide(a, b) {
  if (b === 0) throw new Error("Cannot divide by zero");
  return a / b;
}
try {
  divide(10, 0);
} catch (err) {
  console.log(err.message);  // Cannot divide by zero
}

कस्टम एरर क्लास

अपने खुद के, ज़्यादा वर्णनात्मक एरर टाइप बनाने के लिए built-in Error क्लास को extend करें।

class ValidationError extends Error {
  constructor(message) {
    super(message);
    this.name = "ValidationError";
  }
}
throw new ValidationError("Invalid input");

ख़ास तरीके से catch करें

अलग-अलग एरर टाइप को अलग तरह संभालने के लिए err.name जाँचें या instanceof उपयोग करें, बजाय एक जनरल catch-all के।