很抱歉,如果这是一个新手问题,但我在
Python 3.3中捕获超时异常时遇到问题,在win7上运行,例如
import subprocess try: subprocess.call("ping -t localhost",timeout=3) except TimeoutExpired: print("Timeout happened.\n")
超时工作正常,根据我的pdb traceback,它说:
“提高TimeoutExpired(self.args,timeout)”
然而“除了TimeoutExpired:”并没有抓住它.此外,TimeoutExpired未列为
标准异常,并以nameError形式出现.
如果我尝试“除了TimeoutError:”而不是“除了TimeoutExpired:”,我没有收到错误消息,但在pdb中,我得到:
“未捕获的异常”
并且在任何情况下都不会执行print命令.
这是一个错误,还是我做错了什么?
TimeoutExpired未全局定义;请改用subprocess.TimeoutExpired.