Python尝试失败

时间:2013-09-04 02:39:25

标签: python try-catch

我正在尝试使用Python。

try:
    newbutton['roundcornerradius'] = buttondata['roundcornerradius']

buttons.append(newbutton)

按钮是一个列表。 roundcornerradius在buttondata中是可选的。

唉,这给了

buttons.append(newbutton)
      ^ SyntaxError: invalid syntax

我只想忽略不存在roundcornerradius的情况。我不需要报告任何错误。

3 个答案:

答案 0 :(得分:3)

为什么不使用except关键字

try:
    newbutton['roundcornerradius'] = buttondata['roundcornerradius']
    buttons.append(newbutton)
except:
    pass

这将尝试第一部分,如果抛出错误,它将执行除部分

除了像这样的错误

之外,您还可以添加想要的错误错误

except AttributeError:

你也可以通过这样做得到例外错误:

except Exception,e: print str(e)

答案 1 :(得分:1)

您应该尝试异常:

try:
   code may through exception
except (DesiredException):
  in case of exception

如果只在尝试成功时需要填充新按钮,也可以尝试使用else

try:
    newbutton['roundcornerradius'] = buttondata['roundcornerradius']
except KeyError:
    pass
else:
   buttons.append(newbutton)

没有定义异常类的单except:将捕获引发的每个异常,在某些情况下可能不需要。

您很可能会在代码上获得KeyError,但我不确定。

请参阅此处了解内置异常:

http://docs.python.org/2/library/exceptions.html

答案 2 :(得分:0)

如果使用except,您必须使用finallytry关闭阻止。

try:
    newbutton['roundcornerradius'] = buttondata['roundcornerradius']
except KeyError:
    pass#omit raise if key 'roundcornerradius' does not exists
buttons.append(newbutton)

如果你知道'roundcornerradius'的默认值 - 你不需要try ... except

newbutton['roundcornerradius'] = buttondata.get('roundcornerradius', DEFAULT_RADIUS)
buttons.append(newbutton)