पाठ 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 के।