के अंत में के बजाय का उपयोग करते हुए मैं इस पैटर्न देखा है अब कुछ समय:पकड़
bool success = false;
try
{
DoSomething();
success = true;
}
finally
{
if (!success)
Rollback();
}
और मैं सोच रहा है: क्यों इस पुनरावर्तन के लिए पकड़ का उपयोग करने से बेहतर है?
try
{
DoSomething();
}
catch
{
Rollback();
throw;
}
सुनिश्चित करने के दो तरीकों के बीच मतभेद क्या हैं विफलता पर परिवर्तन वापस आ गए हैं?
यह समझ में आता है। मुझे एहसास नहीं हुआ कि जावा आपको उत्तेजना को सही ढंग से पुनर्स्थापित करने की अनुमति नहीं देता है। और यहां मैं सोच रहा था कि यह महत्वपूर्ण वर्गों और पसंदों के साथ कुछ करने जा रहा था ... – configurator
@configurator: अब जब आप इसका जिक्र करते हैं, तो मुझे लगता है कि वास्तव में [प्रतिबंधित निष्पादन क्षेत्र] (http://msdn.microsoft.com/en-us/library/ms228973.aspx)। – dtb
-1 "जावा में" अपवाद को फिर से फेंकने का कोई तरीका नहीं है "- ['फेंक ई' के अलावा, यह है (http://stackoverflow.com/a/1097539/265143)। –