2010-01-05 11 views
7

this सवाल मैंने देखा है कि मैं निम्न संवाद मिला "कर्सर" स्थानांतरित करने के लिए, जबकि एक अपवाद संभाला जा रहा था atempting जबकि जवाब दे जबकि:नेट - एक "unwind" क्या है?

इस स्थान के बगल में बयान सेट करने में असमर्थ। कॉलस्टैक को खोलने का प्रयास असफल रहा।

Unwinding निम्न परिदृश्यों में संभव नहीं है:

  1. डिबगिंग बस-इन-समय डिबगिंग के माध्यम से शुरू किया गया था।
  2. एक खोलना
  3. एक System.StackOverflowException या System.Threading.ThreadAbortException अपवाद उत्पन्न किया गया है प्रगति पर है।

वास्तव में क्या एक खोलना है?

उत्तर

15

यह मैं हूं!

नहीं, इस संदर्भ में यह आम तौर पर वांछित स्तर पर वापस आने तक लगातार फ्रेम को हटाने के लिए चरणबद्ध ("पिछड़ा"/"ऊपर") की प्रक्रिया को संदर्भित करता है। विशिष्ट ढेर (निश्चित रूप से) उनकी संरचना में बहुत रैखिक होते हैं, फ्रेम एक दूसरे के बाद अंत तक खड़े होते हैं, इसलिए वास्तव में बहुत अधिक शाब्दिक अनचाहे नहीं चल रहा है, लेकिन यही वह कहा जाता है।

This Wikipedia page अधिक जानकारी है।

1

अनविंडिंग केवल स्टैक को वापस ले जा रहा है।

0

इसका मतलब है कि एक दोषपूर्ण धागा है या शायद ऐसा इसलिए है क्योंकि स्टैक भरा हुआ है और कोई स्टैक फ्रेम नहीं बनाया गया है, सीएलआर इस स्थिति में वर्तमान संदर्भ को संयुक्त संदर्भ के रूप में चुनता है।

1

यह जहां सीएलआर एक कैच ब्लॉक के साथ एक विधि का पता लगाने के लिए स्टैक को 'अनदेखा' कर रहा है जो अपवाद को संभाल सकता है यानी यदि वर्तमान विधि अपवाद को संभाल नहीं पाती है तो यह उस विधि पर वापस आती है जिसे इसे कहा जाता है देखें कि यह होगा। यह दोहराया जाता है जब तक कि इसे अपवाद को संभालने या अनुप्रयोग स्तर त्रुटि प्रबंधन को हिट करने के लिए कोई विधि नहीं मिल जाती।

संबंधित मुद्दे