Improve handling of bad JSON from comments service

Instead of allowing the JSONDecodeError to escape, raise an error
indicating the request id and containing the first 100 characters
of the response to aid investigation.
This commit is contained in:
Greg Price
2014-05-30 13:22:57 -04:00
parent c389746a2a
commit dc2342859e

View File

@@ -104,7 +104,15 @@ def perform_request(method, url, data_or_params=None, raw=False,
if raw:
return response.text
else:
data = response.json()
try:
data = response.json()
except ValueError:
raise CommentClientError(
u"Comments service returned invalid JSON for request {request_id}; first 100 characters: '{content}'".format(
request_id=request_id,
content=response.text[:100]
)
)
if paged_results:
dog_stats_api.histogram(
'comment_client.request.paged.result_count',