Windows 在Python 3.3中捕获TimeoutExpired异常
如果这是一个新手问题,很抱歉,但是我在捕捉运行在win7上的Python3.3中的超时异常时遇到了问题,例如Windows 在Python 3.3中捕获TimeoutExpired异常,windows,exception,python-3.3,Windows,Exception,Python 3.3,如果这是一个新手问题,很抱歉,但是我在捕捉运行在win7上的Python3.3中的超时异常时遇到了问题,例如 import subprocess try: subprocess.call("ping -t localhost", timeout=3) except TimeoutExpired: print("Timeout happened.\n") 超时工作正常,根据我的pdb回溯,它显示: “raise TimeoutExpired(self.args,timeout)”
import subprocess
try:
subprocess.call("ping -t localhost", timeout=3)
except TimeoutExpired:
print("Timeout happened.\n")
超时工作正常,根据我的pdb回溯,它显示:
“raise TimeoutExpired(self.args,timeout)”
然而,“除了TimeoutExpired:”并没有捕捉到它。此外,TimeoutExpired未列为
这是一个标准的异常,并显示为nameError
如果我尝试除TimeoutError之外的:
而不是除TimeoutExpired之外的:
,我不会得到错误消息,但在pdb中,我会得到:
“未捕获异常”
在任何情况下都不会执行print命令
这是一个bug,还是我做错了什么?
TimeoutExpired
没有全局定义;改用subprocess.TimeoutExpired
。是的,但是subprocess.TimeoutExpired肯定应该从TimoutError派生。。。也不例外。我认为这可能是疏忽大意。我可能错了,但我认为他们选择了SubprocessError子类,因为这在Python程序本身的上下文中不是一个例外,而是在它监视的子进程中。