1

我正在尝试将 App Engine 与 Google Endpoints 一起使用,但我看到了一个奇怪的行为。如果我通过以下方式抛出异常:

throw new Exception("MyException");

AsyncTask然后,如果我在负责与 Endpoint 连接的 android 端捕获它,我根本无法从中获取消息。如果我打电话e.getMessage(),我会得到类似的东西:

503 Service Unavailable
[ code: "503",
...
message: "MyException"
]

这有点奇怪。有人遇到过这种行为吗?如何在 App Engine 上正确抛出异常?

4

1 回答 1

3

你所看到的是正常的和预期的。

App Engine 仅向您的 Android 客户端提供 HTTP 请求。异常不会通过 HTTP 请求“抛出”,您只会得到 HTTP 响应。您必须在 Google App Engine 端捕获异常,并将其转换为适当的 HTTP 错误响应(如果您没有捕获它,默认处理程序会为您提供 503 响应,如您所见)。

在 Android 端,您必须检查错误结果。

于 2012-10-08T18:14:30.117 回答