如何检测Python的超长时间函数调用并在指定秒数超时后自动抛Exception?

如何检测Python的超长时间函数调用并在指定秒数超时后自动抛Exception?
需要检测的代码形式比如下面的A和B函数:
def A():
while True: print "dead looping"

def _inner():
print "do some thing"
def B():
for i in xrange(10000000000000): _inner()

PS:可能我描述的不够清楚。我是指让模块/函数编写者不添加任何额外代码的情况下,通过修改Python的某些机制(甚至python core C实现)来使得超时函数自动报警(报异常),以提供当时的call stack信息 — AKara 1分钟之前

AKara
编辑于2011-11-04
评论 (3)链接2011-11-03 
  • 0 支持
    使用static variable计数或做条件值? – 程序员1999 2011-11-03
  • 1 支持
    是要所有的循环跑一段时间就抛出异常还是根据循环里的代码性质来决定? – 唐仕强 2011-11-03
  • 0 支持
    不根据代码性质,通杀一切任意写的代码。 – AKara 2011-11-04

循环1秒钟

  
import time
try:
time.clock()
while True:
#after 1 second
if time.clock() > 1:
raise Exception("dead looping")
print "looping"
except Exception ,e :
print e
该答案已被锁定,无法对其进行评论,编辑及投票。
()
评论 (1)链接 • 2011-11-03
  • 0 支持
    代码稍微有点模糊哦,缩进还是要添加以下的嘿嘿。。 – 张晓明 2013-03-05
德问是一个专业的编程问答社区,请 登录注册 后再提交答案