13

いくつかのことを行い、悪いファイル名をキャッチするメソッドを作成しました。パスが存在しない場合は、IOError がスローされます。しかし、それは私の例外処理が悪い構文であると考えています...なぜ??

デフ何でも():
    試す:
        # 何かをする
        # その他のもの
    IOError を除く:
        # これを行う
        合格
なんでもいい()

ただし、 を呼び出す前にwhatever()、次のように出力します。

トレースバック (最新の呼び出しが最後):
  ファイル ""、1 行目、
  ファイル "getquizzed.py"、55 行目
    IOError を除く:
         ^
SyntaxError: 無効な構文

インポート時に...ヘルプ?!

4

4 に答える 4

10

インデントを確認してください。この役に立たないSyntaxErrorエラーは、以前に私をだましました。:)

削除された質問から:

I'd expect this to be a duplicate, but I couldn't find it.

Here's Python code, expected outcome of which should be obvious:

x = {1: False, 2: True} # no 3

for v in [1,2,3]:
  try:
      print x[v]
  except Exception, e:
      print e
      continue
I get the following exception: SyntaxError: 'continue' not properly in loop.

I'd like to know how to avoid this error, which doesn't seem to be 
explained by the continue documentation.

I'm using Python 2.5.4 and 2.6.1 on Mac OS X, in Django.

Thank you for reading
于 2011-02-02T00:16:34.697 に答える
2

tryブロックに何かが欠けているだけpassです。そうしないと、インデントエラーが発生します。

于 2011-02-02T00:19:32.240 に答える
1

tryブロックの横に何かを入れないと、構文エラーが発生します。passスペースを保持するためだけに置くことができます:

try:
    # do stuff
    # and more stuff
    pass
except IOError:
    # do this
    pass
于 2011-02-02T00:17:53.780 に答える