आप इसे की जरूरत है अपने try
कोड सफल होता है हमेशा निष्पादित करने के लिए, अपनी कोशिश ब्लॉक के अंत में डाल दिया। यह तब तक चलता रहेगा जब तक आपके try
ब्लॉक में पिछले कोड अपवाद के बिना चलता है।
try
{
// normal code
// code to run if try stuff succeeds
}
catch (...)
{
// handler code
}
finally
{
// finally code
}
आप के लिए विकल्प अपवाद संचालन की जरूरत है "succeded" कोड, आप कर सकते हैं हमेशा घोंसला अपने ट्राई/कैच:
try
{
// normal code
try
{
// code to run if try stuff succeeds
}
catch (...)
{
// catch for the "succeded" code.
}
}
catch (...)
{
// handler code
// exceptions from inner handler don't trigger this
}
finally
{
// finally code
}
यदि आपका "सफल" कोड अपने अंत में, उपयोग के बाद निष्पादित करने के लिए है एक चर:
bool caught = false;
try
{
// ...
}
catch (...)
{
caught = true;
}
finally
{
// ...
}
if(!caught)
{
// code to run if not caught
}
क्यों आखिरी बात कोशिश के अंत में अपना कोड क्यों न जोड़ें? –
क्योंकि आप बाहरी अपवाद हैंडलिंग द्वारा पकड़े जाने वाले शेष कोड द्वारा फेंकने वाले किसी भी अपवाद को चाहते हैं, और यह आंतरिक प्रयास/पकड़ ब्लॉक नहीं है। इस मामले में ऐसा करने का सबसे अच्छा तरीका (जिसे मैं जानता हूं) एक बूल का उपयोग करना है। – John