2016-06-01 16 views
0

例外ブロックに移動することはありませんが、そのようなファイルやディレクトリはありません。IOErrorを取得した場合はexceptブロックに入力しないでください。私は何が欠けていますか?Pythonは単純な例外を処理しません

try: 
    file_users = open ('datos/usuarios.json','r') 
    dic = json.load(file_users) 
    file_users.close() 
except EOFError, IOError: 
    print("File does not exist") 
+1

それらの周りに括弧を追加します: ''(例外EOFError、例外IOError)を除きます。 'EOFErrorを除いて、IOError'はPython 2の' IOError as IOError'を除いて同等です。 –

+0

まあまあ、括弧がそれらの周りにあるときも同じですが、それでもexceptブロックには入りません。これが私の現在の状態です:except(EOFError、IOError): また、このスレッドの複製を見つけることができませんでした! – Alejo

+0

あなたはまだ古いコードを実行しているのでしょうか? –

答えて

0

あなたはあなたのエラーの周りに括弧が欠落している、彼らはタプルとして渡さする必要があります

except (EOFError, IOError): 

relevant section of the documentation比較します。

あなたの全体のブロックは次のようになります。

try: 
    archivo_usuarios = open ('datos/usuarios.json','r') 
    dic = json.load(archivo_usuarios) 
    archivo_usuarios.close() 
except (EOFError, IOError): 
    print("File does not exist") 
+0

私が上で述べたように、かっこ内に例外をラップするかどうかにかかわらず、exceptブロックを入力することはまだありません。奇妙な。 – Alejo

+0

私は上記の答えに変更を加えてブロック全体を追加しました。マシン上でこれを実行すると(ファイルが存在しないため、IOErrorが発生します)、期待通りに 'File is exist'を表示します。 –

+0

私は別の.pyファイルを実行して最初から実行するとうまくいくが、何とか私のコード全体でうまくいかないようだ。私は何を試してみるよ、ありがとう! – Alejo

関連する問題