如何处理python生成的错误消息我自己的方式?
对于如下的一些代码,
opts, args = getopt.getopt(sys.argv[1:], "c:", ...
for o,v in opts:
...
elif o in ("-c", "--%s" % checkString):
kCheckOnly = True
clientTemp = v
如果我在-c之后没有给出参数,我会收到如下错误消息。
Traceback (most recent call last):
File "niFpgaTimingViolationMain.py", line 100, in
opts, args = getopt.getopt(sys.argv[1:], "hdc:t:",[helpString, debugString, checkString, twxString])
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/getopt.py", line 91, in getopt
opts, args = do_shorts(opts, args[0][1:], shortopts, args[1:])
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/getopt.py", line 195, in do_shorts
opt)
getopt.GetoptError: option -c requires argument
有什么办法来捕捉这个错误,并处理它打印这样的东西? 似乎只是在try / wrap中包装代码不起作用。
ERROR: You forgot to give the file name after -c option
您可以捕获getopt.GetoptError并自己检查'opt'和'msg'属性:
try:
opts, args = getopt.getopt(sys.argv[1:], "c:", ...
except getopt.GetoptError, e:
if e.opt == 'c' and 'requires argument' in e.msg:
print >>sys.stderr, 'ERROR: You forgot to give the file name after -c option'
sys.exit(-1)
正确的答案是使用OptionParser模块,而不是试图“滚动你自己的”。
链接地址: http://www.djcxy.com/p/9293.html上一篇: How to process python generated error messages my own way?
下一篇: Listing only directories using ls in bash: An examination
