इस begin-बचाव-सुनिश्चित ब्लॉक पर विचार करें:रूबी 'सुनिश्चित' नहीं है जब मैं 'बचाव' में 'पुन: प्रयास'
attempts=0
begin
make_service_call()
rescue Exception
retry unless attempts>2
exit -1
ensure
attemps += 1
end
आपको लगता है कि कोड चलाते हैं के रूप में यह है, यह एक अपवाद है क्योंकि वहाँ को जन्म देती है 'make_service_call()' नामक कोई फ़ंक्शन नहीं है। तो, यह retries। लेकिन यह अनंत लूप में फंस जाएगा क्योंकि नियंत्रण 'पुनः प्रयास' के कारण कभी भी 'सुनिश्चित' नहीं होता है। ब्लॉक के हिस्से को 'सुनिश्चित' नहीं करना चाहिए, यह सुनिश्चित करना चाहिए कि उसमें कोड निष्पादित हो जाए, इससे कोई फर्क नहीं पड़ता कि 'शुरूआत' या 'बचाव' में क्या होता है?
बेशक मैं 'शुरुआत' में गिनती बढ़ा सकता हूं - यह बात नहीं है। मैं सिर्फ कुछ स्पष्टता प्राप्त करने के लिए 'सुनिश्चित' के बारे में सवाल पूछ रहा हूं।