gpt4 book ai didi

java - Android 没有捕获 Jersey RESTful 异常

转载 作者:行者123 更新时间:2023-11-29 21:17:55 25 4
gpt4 key购买 nike

我有一个使用 AndroidAnnotations 和 Spring Rest 模板使用 RESTful 服务的 Android 应用程序。

服务正在正常使用,但是当 RESTful 服务抛出未处理的异常时,Android 应用程序停止运行并关闭,即使 try catch 包含服务使用也是如此。

android-app:

@RestService
protected StudentRESTfulClient mStudentRESTfulClient;

@Click(R.id.register_button)
public void register(Student user) {
try {
this.mStudentRESTfulClient.insert(user);
} catch (Exception exception) {
// This block is not executed...
}
}

restful-app:

@POST
public Student insert(Student entity) {
this.getService().insert(entity); // Throw the exception here!
return entity;
}

我知道在 RESTful 服务中没有处理异常,但我希望我的 Android 应用程序能够捕获此类问题并向用户显示友好消息。但是即使用try catch也会出现如下错误:

01-11 00:44:59.046: E/AndroidRuntime(5291): FATAL EXCEPTION: pool-1-thread-2
01-11 00:44:59.046: E/AndroidRuntime(5291): org.springframework.web.client.HttpServerErrorException: 500 Internal Server Error
01-11 00:44:59.046: E/AndroidRuntime(5291): at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:78)
01-11 00:44:59.046: E/AndroidRuntime(5291): at org.springframework.web.client.RestTemplate.handleResponseError(RestTemplate.java:524)

Git 存储库,如果他们想查看整个项目:https://github.com/veniltonjr/msplearning

已经,谢谢!

最佳答案

在服务器异常的情况下向用户显示友好消息的方法是从 Jersey 返回错误状态代码,然后 Android 端可以处理此响应并执行操作以向用户显示出现问题的消息。

因此在您的 Jersey 代码中,您可以添加异常处理:

@POST
public Response insert(Student entity) {
Response r;
try {
this.getService().insert(entity); // Throw the exception here!
r = Response.ok().entity(entity).build();
} catch (Exception ex) {
r = Response.status(401).entity("Got some errors due to ...!").build();
}
return r;
}

在 Android 端,您可以捕获错误实体字符串 “Got some errors due to ...!” 然后您可以向用户显示有关发生的事情的适当消息。例如:

安卓端:

HttpClient client = new DefaultHttpClient();
HttpResponse response = client.execute(post);
String responseText = EntityUtils.toString(response.getEntity());

这将确保在 REST 异常的情况下,Android 客户端可以处理错误并向用户显示消息。

关于java - Android 没有捕获 Jersey RESTful 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21058053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com