void foo() try {} catch (...) {}
// OK, function-try-block
लैम्बडा के लिए कोई फंक्शन-ट्राई-ब्लॉक क्यों नहीं है?
[]() try {} catch (...) {}();
// error: expected ‘{’ before ‘try’
[]() { try {} catch (...) {} }();
// OK, extra curly braces`
क्यों दूसरा संस्करण अनुमति नहीं है?
क्या संस्करण 1 वास्तव में मान्य है? – JVApen
@JVApen हां यह है। – DimChtz
@JVApen यह आपको एक कोशिश-पकड़ ब्लॉक में एक कन्स्ट्रक्टर लपेटने का इरादा रखता है, जो तब प्रारंभिकरण के दौरान फेंकने वाले किसी भी अपवाद को पकड़ने में सक्षम होगा; चूंकि ऑब्जेक्ट पहले से ही कन्स्ट्रक्टर के शरीर में प्रवेश करता है, तब तक शरीर के बाहर ट्राइक-कैच ब्लॉक में प्रवेश करने के लिए विशेष वाक्यविन्यास की आवश्यकता होती है। यह प्रोग्रामर को सामान्य रूप से संभालने के साथ अपवाद पारित करने से पहले आंशिक रूप से निर्मित वस्तुओं के लिए आवश्यक आवश्यक सफाई करने की अनुमति देता है। [फ़ंक्शन के अंदर घोषित ऑब्जेक्ट्स को कैच ब्लॉक (ओं) के अंत तक दायरे में माना जाता है।] –