Повторяющиеся пункты «попробуй и за исключением»

Я создал несколько функций, и мне нужно очень похожие, за исключением предложений во всех них, но я ненавижу иметь так много строк try, за исключением предложений и одного и того же кода внутри каждой функции. Например:

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» отличается для функций, но код после «кроме» такой же. Я хочу объединить эти, кроме операторов, чтобы они не делали мой код таким тесным. Есть ли хороший способ сделать это?

Ответы на вопрос(5)

Ваш ответ на вопрос