2016-03-04 88 views
0

當我調用onFailure方法時,需要使用Retrofit處理不同的異常,並依賴異常顯示某些錯誤消息。改進異常處理

現在,我只顯示麪包的信息Error。我認爲這還不夠。

通知用戶有關REST調用中的問題的適當方式是什麼?

+0

您是否想根據失敗的原因給用戶不同的信息? –

+0

@NielsMasdorp,是的。但我不知道應該處理哪些異常:( – Near1999

回答

0

有很多選項可以通知用戶有關應用程序功能中發生的錯誤。當談到網絡通話時,一個明智的方法是根據響應的HTTP代碼(400,404,403或200)提示用戶輸入適當的消息,並使其能夠重試。

小吃吧是材料設計器件是Android中可用的一個,使得開發者能夠顯示在屏幕的任何部分的消息(頂部,底部,...)和部分功能集成到它,以便用戶可以「重試」或「撤消」她所做的事情。

enter image description here

這是非常簡單和容易實現:

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.

0

在我看來這個教程,你不應該告知用戶什麼技術,他們可能會不理解(例如,「ERROR 5653」 )。所以你處理失敗的方式取決於請求的上下文。如果請求殺死了應用程序的整個流程,則可能需要做的更多,然後只顯示一個敬酒,但如果不是,我通常會顯示一個Toast/Snackbar,並顯示一般性錯誤消息,如:「出錯了」。