【问题标题】:Android how to catch an exception thrown from php restAndroid如何捕获从php rest引发的异常
【发布时间】:2012-10-12 07:23:55
【问题描述】:

我有一个 PHP RESTful API,它返回 JSON 对象。 我有一个 Android 客户端从该 API 请求 REST 请求

到目前为止,如果服务器端出现问题,API 会返回布尔响应“false”

我想改变 API 的流程,所以不是发送包含“false”的 JSON 响应,而是会抛出异常,我希望 android 端捕获异常。

所以基本上,我想要下面的 Android 代码:

try {
    php_api.getUsers();
} catch (Exception ex) {
    // TODO
}

可以吗? 任何 PHP 异常都会这样被捕获吗?

【问题讨论】:

  • 没有。 java异常是针对java的,不是由php传输的,尤其是不是通过http传输的。如果结果为假,你仍然可以在 java 端抛出异常。
  • 我的意思正好相反。 - Java 能以某种方式捕获 PHP 异常吗?
  • 不管怎样。您可以做的是发送一个从 java 中获取的值,这又会引发异常。

标签: php android api rest exception


【解决方案1】:

我没有使用过 Java,但我认为你做不到。 当 PHP 抛出异常时,它仍然会产生某种输出,这取决于您如何设置异常处理。 它可以显示带有堆栈跟踪或类似内容的异常消息。 但在客户端(您的 Java 应用程序)端,这只不过是文本。

但是,休息响应应始终包含您可以检查的标头。看看这个:http://blog.zenika.com/index.php?post/2011/05/18/Error-handling-with-REST

通过遵循那里写的内容,您的 Java-to-PHP api 将始终在返回内容之前读取响应标头。如果出现 500 或 400,你会从 api 抛出一个 java 异常,你可以在使用它的代码中捕获它。

如果您的 PHP 端没有发送您想要的标头,您可以随时覆盖 PHP 的 error/exception 处理以生成自定义输出(包括标头)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-07
    • 1970-01-01
    • 2017-03-11
    • 2019-09-13
    • 1970-01-01
    • 1970-01-01
    • 2012-06-06
    相关资源
    最近更新 更多