मैंने एक सिद्धांत का परीक्षण करने के लिए एक सरल कार्यक्रम लिखा था कि "आखिरकार" ब्लॉक हमेशा कोई फर्क नहीं पड़ता कि क्या होगा। लेकिन, मैं नीचे दिए गए पीजीएम से जो देख रहा हूं वह यह है कि नियंत्रण बाहरी फाइनली ब्लॉक में प्रवेश नहीं करता है।अंदरूनी "पकड़" फेंकने पर बाहरी "अंततः" निष्पादित क्यों नहीं किया जा रहा है?
मैंने विजुअल स्टूडियो में F5 और Ctrl-F5 करने का प्रयास किया और यह वही परिणाम है।
क्या कोई यह समझा सकता है कि मैं यह व्यवहार क्यों देख रहा हूं? कंसोल विंडो पर
आउटपुट है:
भीतरी पकड़
भीतरी अंत में
बाहरी पकड़
बिना क्रिया अपवाद:
..और तो अनुप्रयोग क्रैश हो
public class Program
{
static void Main()
{
try
{
try
{
string s = null;
s.ToString();
}
catch
{
Console.WriteLine("inner catch");
throw;
}
finally
{
Console.WriteLine("inner finally");
}
return;
}
catch
{
Console.WriteLine("outer catch");
throw;
}
finally
{
Console.WriteLine("outer finally");
}
}
}
ओह ठीक है। रद्द करने पर क्लिक करने से "बाहरी अंत में: कथन दिखाया जाता है। इसे जानने के लिए अच्छा। धन्यवाद – user330612