在(本节)[https://docs.python.org/3/library/subprocess.html#exceptions]关于subprocess的异常.Popen文档说“最常见的异常是OSError”。
是否存在其他未记录的异常,这些异常可能是由OSError类型引起的,并且不是由于无效的参数引起的?
我问这个是因为我有以下代码:
try:
obj = subprocess.Popen(*args)
#....
except OSError as e:
pass
我希望这是100%免费的例外。我正在研究的系统是Debian GNU / Linux 7.7(wheezy)。
我不仅要求这是一个安全的方式来编写我的程序,而且还因为python os.Popen
实现的好奇心。所以请更具体而不仅仅是说要抓住Exception
。
答案 0 :(得分:1)
抓住Exception
,如果你想确定自己抓住了一切。这仍然不会像SystemExit
那样抓住,但大部分时间你都不想抓住那些。
答案 1 :(得分:1)
这将涵盖其中的大部分内容:
try:
obj = subprocess.Popen(*args)
#....
except OSError as e: # to catch OSError
print e
pass
except ValueError as e: # to catch ValueError
print e
pass
except:pass # others