क्या मुझे जावास्क्रिप्ट में `थ्रो` के बाद` वापसी` की आवश्यकता है?


99

मैं फेंक रहा हूं Error एक विधि से जिसे मैं नीचे से जल्दी बाहर निकालना चाहता हूं:

// No route found
if(null === nextRoute) {
    throw new Error('BAD_ROUTE');
}

क्या मुझे return;अपने बाद एक बयान देने की आवश्यकता है throw? यह मेरे लिए, अभी के लिए काम करता है। यदि यह बहुत ही शानदार है, तो मैं इसे अंदर नहीं डालूंगा, लेकिन मुझे यकीन नहीं हो सकता कि विभिन्न ब्राउज़र क्या कर सकते हैं।

जवाबों:


161

आपको returnबयान देने की आवश्यकता नहीं है throw, returnलाइन को कभी भी अपवाद के रूप में नहीं पहुंचाया जाएगा क्योंकि कॉल करने वाले के हाथों को तुरंत नियंत्रित किया जाएगा।


1
"एक अपवाद फेंकना तुरंत कॉल करने वाले को वापस नियंत्रित करता है" ... जब तक कि कॉल स्टैक के किसी भी पथ में फेंकी गई त्रुटि को संभालने के लिए एक CATCH नहीं है।
महेश

12
@ महेश मुझे यकीन नहीं है कि आप "अनलेस" से क्या मतलब रखते हैं - किसी भी CATCH के नीचे के ढेर में जहां throwघटित हुआ है वह "कॉलर" का हिस्सा है
Rob M.
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.