TypeScript Academy · पाठ

पकड़ी गई त्रुटियों को सीमित करना (unknown बनाम Error)

unknown प्रकार वाली पकड़ी गई त्रुटियों को सुरक्षित रूप से संभालें

पाठ 3, कुल 4 में से13 चरण

पकड़ी गई त्रुटियों को सीमित करना (unknown बनाम Error), CoddyKit पर TypeScript Academy का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह TypeScript Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। TypeScript Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

स्वागत है

TypeScript 4.0 से पकड़ी गई त्रुटियों का प्रकार unknown होता है। इससे त्रुटि के गुणों का उपयोग करने से पहले स्पष्ट रूप से प्रकार सीमित करना आवश्यक हो जाता है।

TS 4.0 में बदलाव

TypeScript 4.0 में useUnknownInCatchVariables जोड़ा गया। strict मोड में पकड़ी गई त्रुटियों का प्रकार unknown होता है।
// err is now: unknown
try { doSomething(); }
catch (err) {
  // err.message; // Error — cannot access on unknown
}

instanceof द्वारा प्रकार सीमित करना

त्रुटि के गुणों तक सुरक्षित रूप से पहुँचने के लिए instanceof Error का उपयोग कीजिए।
catch (err) {
  if (err instanceof Error) {
    console.error(err.message, err.stack);
  } else {
    console.error('Unknown error:', String(err));
  }
}

isError प्रकार रक्षक

त्रुटि का प्रकार सीमित करने के लिए पुनः उपयोग योग्य प्रकार रक्षक बनाइए।
function isError(e: unknown): e is Error {
  return e instanceof Error;
}
catch (e) {
  if (isError(e)) console.error(e.message);
}

कस्टम त्रुटि का प्रकार सीमित करना

catch ब्लॉक में कस्टम त्रुटि प्रकार तक प्रकार सीमित कीजिए।
catch (err) {
  if (err instanceof NetworkError) { /* retry */ }
  else if (err instanceof AuthError) { /* redirect */ }
  else if (err instanceof Error) { /* generic */ }
  else throw err;
}

useUnknownInCatchVariables

यह फ़्लैग (TS 4.4+ में strict का हिस्सा) पकड़ी गई त्रुटियों के लिए unknown प्रकार लागू करता है।
{ "compilerOptions": { "useUnknownInCatchVariables": true } }

स्ट्रिंग त्रुटियाँ

कुछ कोड Error ऑब्जेक्ट के बजाय स्ट्रिंग उत्पन्न करते हैं। दोनों स्थितियों को संभालिए।
catch (err) {
  const message = err instanceof Error ? err.message : String(err);
  console.error(message);
}

टाइपयुक्त throw सहायक

ऐसा सहायक फ़ंक्शन बनाइए जो हमेशा टाइपयुक्त Error उत्पन्न करे।
function throwErr(msg: string, code = 500): never {
  const e: AppError = Object.assign(new Error(msg), { statusCode: code });
  throw e;
}

अज्ञात त्रुटियों को फिर से उत्पन्न करना

जिन त्रुटियों को आप संभाल नहीं सकते, उन्हें फिर से उत्पन्न कीजिए।
catch (err) {
  if (err instanceof KnownError) handle(err);
  else throw err; // propagate unknowns
}

React में त्रुटि सीमाएँ

React की त्रुटि सीमाओं को जीवनचक्र विधियों से आने वाली अज्ञात त्रुटियों को संभालना चाहिए।
componentDidCatch(error: unknown, info: ErrorInfo) {
  if (error instanceof Error) logError(error.message);
}

पकड़ी गई त्रुटियों का परीक्षण

टाइपयुक्त अभिकथनों के साथ त्रुटि प्रबंधन का परीक्षण कीजिए।
test('catches errors', async () => {
  jest.spyOn(api, 'fetch').mockRejectedValue(new NetworkError());
  const result = await safeRun();
  expect(result.ok).toBe(false);
});

त्वरित जाँच

TypeScript 4.4+ के strict मोड में पकड़ी गई त्रुटि `err` का प्रकार क्या होता है?

पुनरावृत्ति

पकड़ी गई त्रुटियों का प्रकार सीमित करना (unknown बनाम Error): आपने इस विषय की मुख्य अवधारणाएँ और उन्हें वास्तविक TypeScript प्रोजेक्ट में लागू करने का तरीका सीखा।
शुरुआत निःशुल्क

एआई शिक्षक के साथ TypeScript सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
101
पाठ
352

अक्सर पूछे जाने वाले प्रश्न

क्या “पकड़ी गई त्रुटियों को सीमित करना (unknown बनाम Error)” पाठ निःशुल्क है?

हाँ—“पकड़ी गई त्रुटियों को सीमित करना (unknown बनाम Error)” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और TypeScript Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। TypeScript Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“पकड़ी गई त्रुटियों को सीमित करना (unknown बनाम Error)” में मैं क्या सीखूँगा?

unknown प्रकार वाली पकड़ी गई त्रुटियों को सुरक्षित रूप से संभालें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ TypeScript Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या TypeScript Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर TypeScript Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।

“पकड़ी गई त्रुटियों को सीमित करना (unknown बनाम Error)” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस TypeScript Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर TypeScript Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. प्रकारयुक्त त्रुटि क्लास और पदानुक्रम
  2. Result पैटर्न: Ok और Err
  3. पकड़ी गई त्रुटियों को सीमित करना (unknown बनाम Error)
  4. Async TypeScript कोड में त्रुटि प्रबंधन
← TypeScript Academy पर वापस जाएँ