我已经创建了一个连接到某个远程JSON api的库。我有一个Django应用程序,如果我的库无法连接到资源(504错误),它将呈现一个内部服务器错误。下面是一个假设的示例,它显示了我的库代码的布局。在
...
class Error(Exception):
"""class placeholder for errors"""
class theObject(object):
@classmethod
def get(self, params = {}):
url = 'http://somewhere.com/collection.json%s' % (urlencode(params))
try:
response = unicode(urlopen(url).read(), 'utf8').decode()
dictionary = json.loads(response)
result = ApiObject(dictionary)
return result
except HTTPError, e:
raise Error(e.read())
except (ValueError, KeyError), e:
raise Error('Invalid Response')
class Person(theObject):
@classmethod
def get_person(cls, person_id):
params = {'id':person_id)
result = super(Stuff, cls).get(params)
return result
有没有推荐的方法来提醒用户资源太忙了?这比从我当前的ajax请求中呈现一个内部服务器错误要好。在
谢谢!!在
解决了我的问题。我觉得很蠢,因为解决办法很简单。希望这能帮助将来遇到同样问题的人。如果导入的库上的HTTP连接失败,则可以避免呈现服务器错误页,并为客户端生成友好的通知。在
它只需要在导入的库中找到处理错误的类。在本例中,它被命名为“Error”
您可以而且可能应该对其进行自定义,以处理特定于引发的HTTPError的异常。在
干杯!在
相关问题 更多 >
编程相关推荐