fork download
  1. import random
  2.  
  3. def runner(job, maxtry=4):
  4. for x in range(maxtry):
  5. try:
  6. job()
  7. except Exception,e:
  8. print(x, e)
  9. else:
  10. print('done', x)
  11. return
  12.  
  13. def f():
  14. if random.choice([True,False]):
  15. print('yay')
  16. else:
  17. raise Exception('you craz')
  18.  
  19. print('======')
  20. runner(f)
  21. print('======')
  22. runner(f)
  23. print('======')
  24. runner(f)
  25. print('======')
  26. runner(f)
Success #stdin #stdout 0.03s 6504KB
stdin
Standard input is empty
stdout
======
yay
('done', 0)
======
(0, Exception('you craz',))
(1, Exception('you craz',))
(2, Exception('you craz',))
yay
('done', 3)
======
(0, Exception('you craz',))
yay
('done', 1)
======
yay
('done', 0)