Извините, если это вопрос новичка, но у меня возникли проблемы с обнаружением исключения тайм-аута в Python 3.3, работающем на win7, например.
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.
Если я попробую "except TimeoutError:"
вместо "except TimeoutExpired:"
, я не получу сообщение об ошибке, но в pdb я получу:
"Uncaught exception"
и команда печати не выполняется в любом случае.
Это баг, или я что-то не так делаю?