例えば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) です。 構文エ...
コメント