Я создал кучу функций, и мне нужно очень похожие исключения, кроме всех, но мне не нравится иметь столько строк try и except clauses и один и тот же код внутри каждой функции. Например:
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" одинаковый. Я хочу консолидировать эти исключения, чтобы они не заставляли мой код выглядеть настолько стесненным. Есть ли хороший способ сделать это?