Я попытался использовать функции Exception предложил о том, как обрабатывать исключения:обработка в Python (webapp2, Google App Engine)
http://webapp-improved.appspot.com/guide/exceptions.html
в main.py:
def handle_404(request, response, exception):
logging.exception(exception)
response.write('404 Error')
response.set_status(404)
def handle_500(request, response, exception):
logging.exception(exception)
response.write('A server error occurred!')
response.set_status(500)
class AdminPage(webapp2.RequestHandler):
def get(self):
...
admin_id = admin.user_id()
queues = httpRequests.get_queues(admin_id)
app = webapp2.WSGIApplication(...)
app.error_handlers[404] = handle_404
app.error_handlers[500] = handle_500
Функция в httpRequests.py:
def get_queues(admin_id):
url = "http://localhost:8080/api/" + admin_id + "/queues"
result = urlfetch.fetch(url)
if (result.status_code == 200):
received_data = json.loads(result.content)
return received_data
Функция, которая вызывается в A PI:
class Queues(webapp2.RequestHandler):
def get(self, admin_id):
queues = queues(admin_id)
if queues == []:
self.abort(404)
else:
self.response.write(json.dumps(queues))
Я застрял в get_queues в httpRequests.py. Как обрабатывать исключения HTTP с помощью urlfetch?
Там вы идете 'если result.status_code == 200:' – topless
Это не обработка исключений. Я хотел что-то похожее на: try: urllib2.urlopen (url) за исключением urllib2.HTTPError, e: print e.code, но с urlfetch – user2653179