error boundaries render के दौरान, lifecycle तरीकों में और अपने नीचे के constructors में फेंकी गई errors पकड़ती हैं, फिर पूरे app को हटाने की जगह एक fallback दिखाती हैं। वे अब भी getDerivedStateFromError और componentDidCatch वाली class components होती हैं, या कोई wrapper library। वे event handlers, async callbacks या खुद boundary की errors नहीं पकड़तीं, तो उनके लिए सामान्य try और catch तथा रिपोर्टिंग चाहिए।
इंटरव्यूअर यह क्यों पूछते हैं
इंटरव्यूअर जानना चाहते हैं कि आपके app संभलकर गिरते हैं या खाली हो जाते हैं। वे यह सुनते हैं कि boundaries ठीक ठीक क्या पकड़ती हैं, क्योंकि जो छूटता है (event handlers और promises) production की errors वहीं होती हैं। जगह भी मायने रखती है: सिर्फ जड़ पर एक boundary कुछ न होने से मुश्किल से बेहतर है, और अच्छा जवाब जोखिम वाले हिस्सों को अलग करने और users को उबरने का रास्ता देने की बात करता है।
अपना जवाब कैसे स्ट्रक्चर करें
- बताएं कि boundaries क्या पकड़ती हैं और उसकी जगह क्या दिखाती हैं।
- जो छूटता है उसे साफ गिनाएं: handlers, async, server rendering।
- बताएं कि किसी असली layout में आप boundaries कहां रखते हैं।
- रिपोर्टिंग और user को उबरने का रास्ता देना कवर करें।
उदाहरण जवाब
error boundaries अपने नीचे के subtree को render करते वक्त फेंकी गई हर चीज पकड़ती हैं, और एक fallback लगा देती हैं ताकि एक टूटा widget पूरा page न ले डूबे। मैं आम तौर पर खुद class लिखने की जगह react-error-boundary का wrapper इस्तेमाल करता हूं, क्योंकि उससे मुझे reset handler मुफ्त मिल जाता है। जो छूटता है वही लोग भूल जाते हैं: किसी onClick, किसी setTimeout, या किसी बिना संभाले promise rejection में फेंकी गई चीज boundary तक पहुंचती ही नहीं, तो उनके लिए अब भी try और catch तथा साफ error state चाहिए। जगह पर, जड़ पर एक boundary मूल रूप से एक बेहतर crash screen भर है। मैं असल में हर उस हिस्से को लपेटता हूं जो अपने आप में काम का है, यानी sidebar, मुख्य panel, और कोई भी तीसरे पक्ष का embed, हर एक की अपनी boundary, ऐसे fallback के साथ जो बताए कि क्या टूटा और एक दोबारा कोशिश दे जो boundary reset करके data फिर से लाए। हर boundary componentDidCatch में component stack और user के संदर्भ के साथ हमारे error tracker को रिपोर्ट करती है, और React 19 में मैं जड़ पर onUncaughtError भी लगाता हूं ताकि कुछ भी बिना दर्ज हुए न निकल जाए।
जल्दी ही यह इंटरव्यू देने जा रहे हैं? GhostPilot आपकी लाइव कॉल सुनता है, सवाल पूछे जाते ही उसे पकड़ लेता है, और रियल-टाइम में एक स्ट्रक्चर्ड जवाब आपकी स्क्रीन पर डाल देता है। अगले मॉक में इसे आजमाएं, या ले लें एक $29 Session Pass, कोई सब्सक्रिप्शन नहीं, असली इंटरव्यू के लिए।
देखें यह कैसे काम करता हैफॉलो-अप सवाल जिनकी उम्मीद रखें
- किसी dashboard के layout में आप boundaries ठीक कहां रखेंगे?
- किसी event handler के अंदर promise में फेंकी गई error को क्या पकड़ता है?
- server rendering और hydration के दौरान error boundaries कैसा बर्ताव करती हैं?
React डेवलपर के और सवाल
आपका इंटरव्यूअर इसका अपना वर्ज़न पूछेगा। फ्री Question Predictor में अपना असली जॉब डिस्क्रिप्शन पेस्ट कीजिए और वो 20 सवाल पाइए जो उस रोल में सबसे ज्यादा पूछे जाने की संभावना है, साथ में यह भी कि हर सवाल असल में क्या टटोल रहा है।
मेरे सवाल प्रेडिक्ट करें