2012-07-22 50 views
2

我建立使用codename one在代號爲一個

一個應用程序捕獲未知的主機異常所以事情是,我需要使用的應用程序訪問的URL。網址帶回了我在屏幕上顯示的一些結果。

所以我用這些行做到這一點:

ConnectionRequest c = new ConnectionRequest() { 

       protected void readResponse(InputStream input) throws IOException { 


        ByteArrayOutputStream bs = new ByteArrayOutputStream(); 

        int ch; 

        while ((ch = input.read()) != -1) { 

         bs.write(ch); 
        } 
        serverOutput = new String(bs.toByteArray()); 
        bs.close(); 
       } 
      }; 
      c.setUrl("My URL HERE"); 
      c.setPost(false); 


      NetworkManager.getInstance().addToQueueAndWait(c); 

所以,現在,如果GPRS是活躍的,這個代碼工作正常。

,但如果GPRS是無效的,它拋出一個不明主機異常

以抓住這個錯誤,我試圖用一個try catch塊這樣的:

try{ 
NetworkManager.getInstance().addToQueueAndWait(c); 
} 
catch(Exception e) 
{ 
Sys.out.pln(e.troString()); 
} 

但是,我仍然在應用程序中以對話框的形式獲取錯誤。我如何捕獲這個錯誤,並把我自己的處理呢?

更新1:

我不知道這必然是一個代號具體問題,或與Java ...所以只是幫我出這一點。

回答

7

嘗試使用此方法處理一般錯誤的所有連接:

NetworkManager.getInstance().addErrorListener(new ActionListener() { 

    public void actionPerformed(ActionEvent evt) { 
     //handle your error here consume the event 
     evt.consume(); 
    } 
}); 

或覆蓋:

protected void handleErrorResponseCode(int code, String message) { 
} 

和:

protected void handleException(Exception err) { 
} 

在你的連接請求的代碼爲只是這樣做一個班級。

+1

偉大的...固定it..thanks! – Nikhil 2012-07-24 15:51:03

0

嘗試...

public void init(Object context) { 
     Display.getInstance().addEdtErrorHandler(new ActionListener() { 

      public void actionPerformed(ActionEvent evt) { 
       evt.consume(); 

       Throwable exception = (Throwable) evt.getSource(); 
      } 
     }); 
    }