私はたくさんの関数を作成しましたが、それらすべてに非常によく似たexcept節が必要ですが、try節とexcept節の行が非常に多く、各関数内に同じコードがあるのは嫌いです。例えば:
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
"try" の後のコードは関数によって異なりますが、"except" の後のコードは同じです。コードが窮屈にならないように、except ステートメントを統合したいと考えています。これを行う良い方法はありますか?