Angular Academy · पाठ

त्रुटि प्रबंधन ऑपरेटर

catchError और retry से पुनर्प्राप्त करें।

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

त्रुटि प्रबंधन ऑपरेटर, CoddyKit पर Angular Academy का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Angular Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Angular Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

ऑब्ज़र्वेबल में त्रुटियाँ

जब कोई ऑब्ज़र्वेबल त्रुटि उत्सर्जित करता है, तो वह समाप्त हो जाता है: इसके बाद कोई मान नहीं आता और त्रुटि हैंडलर चलता है। त्रुटि ऑपरेटर आपको स्ट्रीम को तोड़े बिना त्रुटियों से उबरने, पुनः प्रयास करने या उन्हें रूपांतरित करने देते हैं।

त्रुटि का मार्ग

त्रुटियों को ऑब्ज़र्वर में या ऑपरेटरों की सहायता से संभालें। यदि त्रुटि को संभाला न जाए, तो अनहैंडल्ड त्रुटि सब्सक्रिप्शन को क्रैश कर सकती है।

this.http.get('/api/data').subscribe({
  next: d => console.log(d),
  error: err => console.error('failed', err)
});

catchError

catchError त्रुटि को रोककर एक वैकल्पिक ऑब्ज़र्वेबल लौटाता है, जिससे स्ट्रीम सहज रूप से जारी रह सकती है।

import { catchError, of } from 'rxjs';

this.http.get('/api/data').pipe(
  catchError(err => {
    console.error(err);
    return of([]); // fallback value
  })
).subscribe(data => console.log(data));

चुनिंदा रूप से फिर त्रुटि देना

catchError के अंदर आप त्रुटि की जाँच करके तय कर सकते हैं कि उससे उबरना है या throwError की सहायता से फिर त्रुटि देनी है।

import { catchError, throwError, of } from 'rxjs';

source$.pipe(
  catchError(err =>
    err.status === 404 ? of(null) : throwError(() => err)
  )
).subscribe();

retry

retry(n) स्रोत में त्रुटि आने पर अधिकतम n बार फिर से सब्सक्राइब करता है — अस्थायी नेटवर्क विफलताओं के लिए उपयोगी।

import { retry } from 'rxjs';

this.http.get('/api/flaky').pipe(
  retry(2) // try up to 3 times total
).subscribe(d => console.log(d));

कॉन्फ़िगरेशन के साथ retry

ऑब्जेक्ट वाला रूप प्रयासों के बीच विलंब जोड़ता है और बैकऑफ़ फ़ंक्शन का भी समर्थन करता है, जिससे सर्वर पर बार-बार अत्यधिक अनुरोध भेजने से बचा जा सकता है।

this.http.get('/api/flaky').pipe(
  retry({ count: 3, delay: 1000 })
).subscribe(d => console.log(d));

retryWhen-शैली बैकऑफ़

घातीय बैकऑफ़ के लिए delay विकल्प ऐसा फ़ंक्शन हो सकता है जो प्रत्येक प्रयास पर क्रमशः अधिक विलंब करने वाला ऑब्ज़र्वेबल लौटाता है।

import { timer } from 'rxjs';

source$.pipe(
  retry({
    delay: (err, count) => timer(count * 1000)
  })
).subscribe();

retry के बाद catchError

दोनों को मिलाएँ: अस्थायी विफलताओं पर फिर प्रयास करें और प्रयास समाप्त हो जाने पर सहज रूप से वैकल्पिक व्यवस्था अपनाएँ।

this.http.get('/api/data').pipe(
  retry({ count: 2, delay: 500 }),
  catchError(() => of([]))
).subscribe(data => console.log(data));

स्थान महत्वपूर्ण है

पाइप में catchError का स्थान उसका दायरा तय करता है। किसी switchMap के अंदर यह प्रत्येक इनर अनुरोध की त्रुटि पकड़ता है और बाहरी स्ट्रीम को जारी रखता है; अंत में रखने पर यह सब कुछ पकड़ता है।

term$.pipe(
  switchMap(t => this.http.get('/api?q=' + t).pipe(
    catchError(() => of([])) // outer stream survives
  ))
).subscribe();

मौन वैकल्पिक व्यवस्था के रूप में EMPTY

catchError से EMPTY लौटाने पर स्ट्रीम बिना किसी मान के पूरी हो जाती है — जब आप त्रुटि को दबाकर कुछ भी उत्सर्जित नहीं करना चाहते, तब यह उपयोगी है।

import { EMPTY, catchError } from 'rxjs';

source$.pipe(
  catchError(() => EMPTY)
).subscribe();

साफ़-सफ़ाई के लिए finalize

finalize किसी भी कारण से स्ट्रीम समाप्त होने पर कॉलबैक चलाता है — पूर्णता, त्रुटि या अनसब्सक्राइब होने पर। लोडिंग स्थिति को हमेशा रीसेट करने के लिए इसे त्रुटि-प्रबंधन के साथ इस्तेमाल करें।

import { finalize, catchError, of } from 'rxjs';

this.loading = true;
source$.pipe(
  catchError(() => of([])),
  finalize(() => this.loading = false)
).subscribe();

त्वरित जाँच

त्रुटि-प्रबंधन की अपनी समझ जाँचिए।

पुनरावलोकन: त्रुटि-प्रबंधन ऑपरेटर

जब तक संभाला न जाए, त्रुटियाँ स्ट्रीम को समाप्त कर देती हैं।

  • catchError: वैकल्पिक ऑब्ज़र्वेबल लौटाकर उबरना।
  • retry: विफलता पर फिर से सब्सक्राइब करना, वैकल्पिक विलंब या बैकऑफ़ के साथ।
  • स्थान, यानी switchMap के अंदर या अंत में, दायरा नियंत्रित करता है।

आपने RxJS ऑपरेटरों का गहन अध्ययन पूरा कर लिया है।

शुरुआत निःशुल्क

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

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

पाठ्यक्रम
38
पाठ
144

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

क्या “त्रुटि प्रबंधन ऑपरेटर” पाठ निःशुल्क है?

हाँ — Angular Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “त्रुटि प्रबंधन ऑपरेटर” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Angular Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“त्रुटि प्रबंधन ऑपरेटर” में मैं क्या सीखूँगा?

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

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

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

“त्रुटि प्रबंधन ऑपरेटर” पाठ पूरा करने में कितना समय लगता है?

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

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

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

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

  1. रूपांतरण ऑपरेटर
  2. फ़िल्टरिंग ऑपरेटर
  3. संयोजन ऑपरेटर
  4. त्रुटि प्रबंधन ऑपरेटर
← Angular Academy पर वापस जाएँ