2016-05-06 9 views
0

私のコードは以下の通りですキャッチません。しかし、HTTPエラーが発生し続ける。 exceptステートメントを使用してそれらをキャッチしようとすると、ループまたはprintステートメントの別の反復を実行するプログラムなしで引き続き実行されます。 HTTPErrorsをキャッチする方法を教えてください。私はPythonの初心者ですので、これはルーキーミスかもしれません。ありがとう!あなたが自分自身を誤る、文字列をerr.msgをチェックする必要がPythonはHTTPError

答えて

1

に等しくなることはありませんどちらかあなたは常に他に達する:上げる:

if err.msg == "Too Many Requests": 
    continue 
if err.msg == "Not Found": 
    print str(user) + " isn't a valid username." 

私はrequestsを使用することをお勧めしますし、redditのとエラーコードが実際に返されますJSONにあなたはそれを使用できるように:

import requests 


def karma_reddit(user): 
    while True: 
     data = requests.get("https://www.reddit.com/user/" + str(user) + ".json").json() 
     if data.get("error") == 429: 
      print("Too many requests") 
     elif data.get("error") == 404: 
      print str(user) + " isn't a valid username." 
     return data 

あなたはすべての例外は、あなたの429と404のをバー上げているという事実は、あなたが試しを必要としないことを意味します。あなたは本当にどんなエラーでも破棄して、単にメッセージをユーザに出力し、リクエストの量を制限するべきです。

+1

ありがとうございました。 – cpat

関連する問題