改进异常处理
问题描述:
当我调用onFailure
方法时,需要使用Retrofit处理不同的异常,并依赖异常显示某些错误消息。改进异常处理
现在,我只显示面包的信息Error
。我认为这还不够。
通知用户有关REST调用中的问题的适当方式是什么?
答
有很多选项可以通知用户有关应用程序功能中发生的错误。当谈到网络通话时,一个明智的方法是根据响应的HTTP代码(400,404,403或200)提示用户输入适当的消息,并使其能够重试。
的小吃吧是材料设计器件是Android中可用的一个,使得开发者能够显示在屏幕的任何部分的消息(顶部,底部,...)和部分功能集成到它,以便用户可以“重试”或“撤消”她所做的事情。
这是非常简单和容易实现:
Snackbar snackbar = Snackbar
.make(coordinatorLayout, "No internet connection!", Snackbar.LENGTH_LONG)
.setAction("RETRY", new View.OnClickListener() {
@Override
public void onClick(View view)
{
//your retry functionality
}
});
我建议你使用小吃吧用于显示信息与自定义功能用户。
为了根据您使用的api的http响应显示正确的消息,您应该知道meaning of each Http status code。
有关实施和定制小吃店一个很好的教程,你可以研究在Android SnackBar Example by AndroidHive.
答
在我看来这个教程,你不应该告知用户什么技术,他们可能会不理解(例如,“ERROR 5653” )。所以你处理失败的方式取决于请求的上下文。如果请求杀死了应用程序的整个流程,则可能需要做的更多,然后只显示一个敬酒,但如果不是,我通常会显示一个Toast
/Snackbar
,并显示一般性错误消息,如:“出错了”。
您是否想根据失败的原因给用户不同的信息? –
@NielsMasdorp,是的。但我不知道应该处理哪些异常:( – Near1999