import random

def runner(job, maxtry=4):
    for x in range(maxtry):
        try:
            job()
        except Exception,e:
            print(x, e)
        else:
            print('done', x)
            return

def f():
    if random.choice([True,False]):
        print('yay')
    else:
        raise Exception('you craz')

print('======')
runner(f)
print('======')
runner(f)
print('======')
runner(f)
print('======')
runner(f)