我正在尝试将App Engine与Google Endpoint一起使用,我只是看到了一个奇怪的行为。如果我抛出异常:
throw new Exception("MyException");
然后如果我在负责与Endpoint连接的AsyncTask
中的android端抓住它,我根本无法从中获取消息。如果我打电话给e.getMessage()
我会得到类似的东西:
503 Service Unavailable
[ code: "503",
...
message: "MyException"
]
有点奇怪。有人遇到过这种行为吗?如何在App Engine上正确抛出异常?
答案 0 :(得分:3)
您所看到的是正常的和预期的。
App Engine仅向您的Android客户端提供HTTP请求。异常不会被“抛出”在HTTP请求上,您只能获得HTTP响应。您必须在Google App Engine端捕获异常,并将其转换为适当的HTTP错误响应(如果您没有捕获它,默认处理程序会为您提供503响应,如您所见)。
在Android方面,您必须检查错误结果。