廖老师,为什么Popen.communicate的timeout超时捕获不了TimeoutExpired,但是可以捕获TimeoutError
Topic source我查了stackoverflow看到说TimeoutExpired is not globally defined; use subprocess.TimeoutExpired instead.
- 1
我查了stackoverflow看到说TimeoutExpired is not globally defined; use subprocess.TimeoutExpired instead.
Kirto先森
具体情况如下: ''' try: output,err = p.communicate(b'set q = mx\n python.org \n exit \n',timeout=1) except TimeoutExpired:
p.kill() output,err = p.communicate(b'set q = mx\n python.org \n exit \n') ''' 显示NameError: name 'TimeoutExpired' is not defined
而我用except TimeoutError可以捕获到异常并执行之后的代码,当然Exception也可以