Android如何捕获从php休息抛出的异常

时间:2012-10-12 07:23:56

标签: php android api rest exception

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

直到现在如果服务器端出现问题,那么API返回一个布尔响应“false”

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

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

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

可以吗? 是否会以这种方式捕获任何PHP异常?

1 个答案:

答案 0 :(得分: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处理来生成自定义输出(包括标题)。