1. ホーム
  2. python

[解決済み] Pythonでエラーが出なくなるまで試す

2022-12-13 19:58:42

質問

Pythonのコードで、サーバーにアクセスしているため確率的にエラーを起こすものがあり、そのサーバーが500 internal server errorを出すことがあります。私はエラーが発生しないようになるまで試し続けたいです。私の解決策は

while True:
    try:
        #code with possible error
    except:
         continue
    else:
         #the rest of the code
         break

これは私にはハックのように思えます。これを行うよりPythonicな方法はありますか?

どのように解決するのですか?

あまりきれいになりません。これはあまりきれいなことではありません。せいぜい(どうせならもっと可読性を高めた方がいいのですが、その条件として break が上に来ていて while ) を作成すると、変数 result = None を作成し、ループさせながら is None . また、変数を調整する必要があり、その際には continue を意味的におそらく正しい pass を追加し (エラーが発生しても気にせず無視したいだけでしょう) break - を削除することで、一度だけ実行される残りのコードもループから抜け出します。また、素の except: 節は理由としては ドキュメントにある .

上記を全て取り入れた例。

result = None
while result is None:
    try:
        # connect
        result = get_data(...)
    except:
         pass
# other code that uses result but is not involved in getting it