0

私はPythonで試しています。

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

buttons.append(newbutton)

ボタンはリストです。ボタンデータでは roundcornerradius はオプションです。

悲しいかな、これは

buttons.append(newbutton)
      ^ SyntaxError: invalid syntax

roundcornerradius が存在しない場合は無視したいだけです。エラーを報告する必要はありません。

4

3 に答える 3

3

exceptキーワードを使わない理由

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

これは最初の部分を試し、エラーがスローされた場合は例外部分を実行します

このような特定のエラーを除外したい無効なエラーを追加することもできます

except AttributeError:

次のようにして、例外エラーを取得することもできます。

except Exception,e: print str(e)

于 2013-09-04T02:42:37.020 に答える
1

例外で try をキャッチする必要があります。

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

またelse、try が成功した場合にのみ新しいボタンを設定する必要がある場合は、tryを使用できます。

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

例外クラスが定義されていないsingleexcept:は、発生したすべての例外をキャッチしますが、これは場合によっては望ましくない可能性があります。

おそらくあなたはKeyErrorあなたのコードに乗るでしょうが、私にはわかりません。

組み込みの例外については、こちらを参照してください。

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

于 2013-09-04T02:43:12.440 に答える
0

exceptまたはfinallyを使用している場合は、ブロックを閉じる必要がありますtry

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)
于 2013-09-04T02:49:17.703 に答える