繰り返し処理のプログラムに入れておきたいエラー対処

例えばAPIで繰り返してデータを取得するときに入れておきたい

エラー対応したい内容

リクエストが多くてレスポンスが返ってこない

こちらは楽天APIでの例です。

{
    "error": "too_many_requests",
    "error_description": "number of allowed requests has been exceeded for this API. please try again soon."
}

リクエストが多すぎるから制限するよ!後でやってね!という内容です。
もちろん起きないように

import time
time.sleep(1)

を入れたりしているかと思うのですが、それでも出るときは出てしまいます。そこで次のエラー一覧を確認してみましょう

301 Moved Permanently

幸いといいますか、どのパターンでも「error」の文字が入っています。

どこまで細かく書いてエラーログを取るかは人それぞれですが、上記のパターンで「とりあえず止めずに続けさせたい」ということであれば

if "error" in response.json(): #jsonで受けている場合
    print('"error": "too_many_requests"')
    time.sleep(10)
    continue

とすれば処理を継続できます。

通信が途切れた

無線でつなげていて。ご家族が電子レンジを使ったりして途切れた等・・悲しいですよね。でもそんなことで喧嘩してたらもったいない。

こんな例外処理を入れておけば解決するかもしれません。

for i in hoge:
    try:
        APIの処理
    except:
         print("error")
         time.sleep(待機する秒数)

ただこちら、あまりよくない例です。 例外名を省くと、どんなエラーがきても対処してくれるのですが、チュートリアルにも「 通常のプログラムエラーをたやすく隠してしまうから 非常に注意するように!」と記載してあります。

8. エラーと例外
これまでエラーメッセージについては簡単に触れるだけでしたが、チュートリアル中の例を自分で試していたら、実際にいくつかのエラーメッセージを見ていることでしょう。エラーには (少なくとも) 二つのはっきり異なる種類があります。それは 構文エラー (syntax error) と 例外 (exception) です。 構文エ...

コメント

タイトルとURLをコピーしました