मैंने कार्यों का एक समूह बनाया है और मुझे उन सभी में खंडों को छोड़कर बहुत समान की आवश्यकता है, लेकिन मुझे कोशिश की इतनी सारी लाइनें और क्लॉज और प्रत्येक फ़ंक्शन के अंदर एक ही कोड को छोड़कर नफरत है। उदाहरण के लिए:दोहराव कोशिश करें और खंडों को छोड़कर
import sys
import random
def foo():
num=random.random()
try:
if num>0.5: print 'OK'
elif num>0.25: raise NameError('Too Small')
else: raise KeyboardInterrupt
except NameError:
print "%s had a NameError" % sys._getframe().f_code.co_name
except:
print "%s had a different Error" % sys._getframe().f_code.co_name
def bar():
num=random.random()
try:
if num>0.8: print 'OK'
elif num>0.6: raise NameError('Too Small')
else: raise KeyboardInterrupt
except NameError:
print "%s had a NameError" % sys._getframe().f_code.co_name
except:
print "%s had a different Error" % sys._getframe().f_code.co_name
"कोशिश" के बाद कोड कार्यों के लिए अलग है, लेकिन "छोड़कर" के बाद कोड समान है। मैं बयान को छोड़कर उन लोगों को समेकित करना चाहता हूं ताकि वे मेरा कोड इतना खराब न हो जाएं। क्या ऐसा करने का कोई अच्छा तरीका है?
किसी भी अपवाद को पकड़ना आम तौर पर वास्तव में एक बुरा विचार है। यह वास्तविक समस्याओं का मुखौटा बनाता है और डीबगिंग को कठिन बना देता है। आप जिन अपवादों के बारे में जानते हैं उन्हें पकड़ें - यदि आप उनके बारे में नहीं जानते हैं, तो क्या आप वास्तव में उन्हें पकड़ना चाहते हैं? –
यह एक अच्छा मुद्दा है। अगर फ़ंक्शन विफल हो जाता है, तो मुझे आगे बढ़ने के लिए स्क्रिप्ट की आवश्यकता होती है। अंतिम "छोड़कर" में 'प्रिंट sys.exc_info() [: 2]' शामिल है जिसमें अपवाद का नाम शामिल है। क्या ऐसा करने के लिए इससे अच्छा तरीका है? – crunkchitis