2016-08-17 54 views
1

codenameone:如何處理異常java.net.ConnectionException明確 我想明確處理異常。目前,當我處理異常它首先隱式處理其中顯示異常在屏幕上的詳細信息。我不想在屏幕上顯示詳細的錯誤信息(彈出對話框)。 現在它顯示了異常Java.net.Connection例外:連接拒絕URL http:localhost /登錄連接reject.india此消息我只想顯示「連接被拒絕」消息彈出對話框codenameone:如何處理異常java.net.ConnectionException明確

可以你請讓我知道如何解決它。

回答

1

在移動設備上,錯誤可能與模擬器上的錯誤大不相同,因爲我們正在處理表面下的本地API。見networking section in the developer guide的錯誤處理部分:

有兩種截然不同的放置在那裏你可以處理網絡故障:

  • ConnectionRequest - 通過重寫回調方法
  • NetworkManager錯誤處理程序

請注意,NetworkManager錯誤處理程序優先,因此您可以通過消耗錯誤來定義網絡錯誤處理的全局策略。

E.g.如果我想阻止任何展示給用戶的所有網絡錯誤,我可以做這樣的事情:

NetworkManager.getInstance().addToQueue(request); 
NetworkManager.getInstance().addErrorListener((e) -> e.consume()); 

錯誤監聽器與NetworkEvent匹配錯誤首先被調用。消費該事件可以防止它沿着鏈條進一步傳播到ConnectionRequest回調中。

我們還可以覆蓋請求中各種類型的錯誤回調,例如在發生服務器錯誤代碼的情況下我們可以這樣做:

ConnectionRequest request = new ConnectionRequest(url, false) { 
    protected void handleErrorResponseCode(int code, String message) { 
     if(code == 444) { 
      // do something 
     } 
    } 
    protected void handleException(Exception err) { 
     // handle exception that occurred. Notice you can either have this or have the listener on the NetworkManager 
    } 
    protected void readResponse(InputStream input) { 
     // just read from the response input stream 
    } 
}; 
NetworkManager.getInstance().addToQueue(request); 
+0

如何處理ConnectionRequest類的超時異常? –

+1

它將在錯誤偵聽器/ handleException方法中顯示它自己。 –

+0

你能用例子來解釋嗎? –