में इटरेटर/जेनरेटर में अपवाद बढ़ाने के बाद जारी रखें क्या पाइथन में इटरेटर/जेनरेटर द्वारा फेंकने के अपवाद के बाद पुनरावृत्ति जारी रखने का कोई तरीका है? नीचे दिए गए कोड की तरह, क्या ZeroDivisionError को छोड़ने और gener()
के माध्यम से modyfying run()
फ़ंक्शन के बिना लूपिंग जारी रखने का कोई तरीका है?पायथन
def gener():
a = [1,2,3,4,0, 5, 6,7, 8, 0, 9]
for i in a:
yield 2/i
def run():
for i in gener():
print i
#---- run script ----#
try:
run()
except ZeroDivisionError:
print 'what magick should i put here?'
इस साधारण मामले में शायद हां। लेकिन क्या होगा यदि हम एक ऐसा फ़ंक्शन चाहते हैं जहां डिफ़ॉल्ट रूप से पुनरावृत्ति रोक दी जाती है लेकिन हम अगले आइटम को अपवाद को पकड़ने के साथ जारी रख सकते हैं? हमारे पास बाहरी सिग्नल होना चाहिए कि कुछ गलत है। – sergzach
@sergzach: हम 'पास' के बजाय' उपज नहीं 'की तरह कुछ कर सकते हैं और कॉलर में उस विशेष मामले को पकड़ सकते हैं। –