पायथन में किसी भी संभावित कोशिश-अंत में, क्या यह गारंटी है कि finally
ब्लॉक को हमेशा निष्पादित किया जाएगा?
उदाहरण के लिए, मान लें कि मैं किसी except
ब्लॉक में रहते हुए लौटता हूं :
try:
1/0
except ZeroDivisionError:
return
finally:
print("Does this code run?")
या हो सकता है कि मैं फिर से उठाऊं Exception
:
try:
1/0
except ZeroDivisionError:
raise
finally:
print("What about this code?")
परीक्षण से पता चलता है कि finally
उपरोक्त उदाहरणों के लिए निष्पादित किया जाता है, लेकिन मुझे लगता है कि ऐसे अन्य परिदृश्य हैं जिनके बारे में मैंने नहीं सोचा है।
क्या ऐसे कोई परिदृश्य हैं जिनमें एक finally
ब्लॉक पायथन में निष्पादित करने में विफल हो सकता है?
finally
तो नहीं चलेगा। या उसी तरह अगर कंप्यूटर पहले दुर्घटनाग्रस्त हो जाता है: D
finally
पावर कॉर्ड दीवार से फट गया है, तो निष्पादित नहीं करेगा।
finally
निष्पादित या "अपने उद्देश्य को हराने" में एक अनन्त लूप,sys.exit
या एक मजबूर व्यवधान के दौरान विफल है । प्रलेखन कहा गया है किfinally
हमेशा निष्पादित किया जाता है, तो मैं उस के साथ जाना चाहते हैं।