जावास्क्रिप्ट में, मान लें कि मैं अपवाद होने पर कुछ सफाई करना चाहता हूं, लेकिन अपवाद को स्टैक तक प्रचारित करना जारी रखें, जैसे:
try {
enterAwesomeMode();
doRiskyStuff(); // might throw an exception
} catch (e) {
leaveAwesomeMode();
throw e;
}
doMoreStuff();
leaveAwesomeMode();
इस कोड के साथ समस्या यह है कि अपवाद को पकड़ने और पुनर्विभाजित करने से स्टैक ट्रेस जानकारी खो जाने का कारण बनता है, जिससे कि यदि अपवाद को बाद में फिर से पकड़ा जाता है, तो स्टैक पर उच्चतर, स्टैक ट्रेस केवल फिर से नीचे चला जाता है -फेंकना। यह बेकार है क्योंकि इसका मतलब है कि इसमें वह फ़ंक्शन नहीं है जो वास्तव में अपवाद को फेंक देता है।
जैसा कि यह पता चला है, कोशिश करें..बस कम से कम क्रोम में एक ही व्यवहार होता है (यानी, यह फिर से फेंकना नहीं है जो समस्या ठीक है, लेकिन किसी भी अपवाद हैंडलर ब्लॉक की उपस्थिति बिल्कुल भी नहीं है।)
क्या किसी को जावास्क्रिप्ट में एक अपवाद को पुनर्जीवित करने का एक तरीका पता है लेकिन इसके साथ जुड़े स्टैक ट्रेस को संरक्षित करें? असफल होने पर, अपवाद-सुरक्षित सफाई संचालकों को जोड़ने के अन्य तरीकों के लिए सुझावों के बारे में कैसे, जबकि अपवाद होने पर पूर्ण स्टैक निशान को कैप्चर करना?
किसी भी संकेत के लिए धन्यवाद :)