मैं समझता हूं कि "उपयोग" का बिंदु यह गारंटी देना है कि ऑब्जेक्ट की निपटान विधि को बुलाया जाएगा। लेकिन "उपयोग" कथन के भीतर एक अपवाद कैसे संभाला जाना चाहिए? यदि कोई अपवाद है, तो मुझे कोशिश करने के लिए अपने "उपयोग" कथन को लपेटने की ज़रूरत है। उदाहरण के लिए:'उपयोग' में कैच ब्लॉक क्यों नहीं है?
कहना चलें वहाँ पैरामीटर का उपयोग कर
try
{
// Exception in using parameter
using (SqlConnection connection = new SqlConnection("LippertTheLeopard"))
{
connection.Open();
}
}
catch (Exception ex)
{
}
या गुंजाइश का उपयोग कर के भीतर एक अपवाद के अंदर वस्तु के निर्माण में बनाई गई एक अपवाद है
using (SqlConnection connection = new SqlConnection())
{
try
{
connection.Open();
}
catch (Exception ex)
{
}
}
यह अगर की तरह लगता है मुझे पहले से ही एक कोशिश पकड़ने के साथ एक अपवाद को संभालने की जरूरत है, शायद मुझे ऑब्जेक्ट का निपटान भी संभालना चाहिए। इस मामले में "उपयोग" कथन मुझे बिल्कुल मदद करने के लिए प्रतीत नहीं होता है। मैं "उपयोग" कथन के साथ अपवाद को सही ढंग से कैसे संभाल सकता हूं? क्या इससे कोई बेहतर दृष्टिकोण है कि मुझे याद आ रही है?
SqlConnection connection2 = null;
try
{
connection2 = new SqlConnection("z");
connection2.Open();
}
catch (Exception ex)
{
}
finally
{
IDisposable disp = connection2 as IDisposable;
if (disp != null)
{
disp.Dispose();
}
}
"का उपयोग" खोजशब्द थोड़ा और मीठा हो सकता है ...
यह यकीन है कि यह करने के लिए अच्छा होगा:
using (SqlConnection connection = new SqlConnection())
{
connection.Open();
}
catch(Exception ex)
{
// What went wrong? Well at least connection is Disposed
}
+1 यह एक अच्छा बिंदु है। अपवाद शायद अगले स्तर पर संभाला जाना चाहिए। – SwDevMan81