यदि आपके कैच स्टेटमेंट को एक यूज़िंग स्टेटमेंट में घोषित चर तक पहुंचने की आवश्यकता है, तो अंदर ही आपका एकमात्र विकल्प है।
यदि आपके कैच स्टेटमेंट को डिस्पोज किए जाने से पहले उपयोग में संदर्भित ऑब्जेक्ट की आवश्यकता है, तो अंदर आपका एकमात्र विकल्प है।
यदि आपका कैच स्टेटमेंट अज्ञात अवधि की कार्रवाई करता है, जैसे उपयोगकर्ता को एक संदेश प्रदर्शित करना, और आप ऐसा होने से पहले अपने संसाधनों का निपटान करना चाहेंगे, तो बाहर आपका सबसे अच्छा विकल्प है।
जब भी मेरे पास इसके समान एक scenerio होता है, तो try-catch ब्लॉक आमतौर पर एक अलग विधि में होता है जो कॉल स्टैक का उपयोग करने से आगे बढ़ता है। यह इस तरह से इसके भीतर होने वाले अपवादों को संभालना जानने के लिए एक विधि के लिए विशिष्ट नहीं है।
इसलिए मेरा सामान्य पुनर्मूल्यांकन बाहर का रास्ता है - बाहर का।
private void saveButton_Click(object sender, EventArgs args)
{
try
{
SaveFile(myFile); // The using statement will appear somewhere in here.
}
catch (IOException ex)
{
MessageBox.Show(ex.Message);
}
}